if (elements == null) {
requireBundles = new RequireBundle[0];
} else {
requireBundles = new RequireBundle[elements.length];
for (int i = 0; i < elements.length; i++) {
AttributeElement element = elements[i];
String name = element.getValues().get(0);
VersionRange versionRange;
String[] versionString = element.getAttributes().get(BUNDLE_VERSION_ATTRIBUTE);
if (versionString == null || versionString.length != 1) {
versionRange = VersionRange.parseVersionRange("");
} else {
versionRange = VersionRange.parseVersionRange(versionString[0]);
}
String[] visibility = element.getDirectiveValues(VISIBILITY_DIRECTIVE);
boolean reexport = true;
if (visibility != null && visibility.length == 1) {
reexport = VISIBILITY_REEXPORT.equals(visibility[0]);
}
String[] resolution = element.getDirectiveValues(RESOLUTION_DIRECTIVE);
boolean mandatory = true;
if (resolution != null && resolution.length == 1) {
mandatory = RESOLUTION_MANDATORY.equals(resolution[0]);
}
requireBundles[i] = new RequireBundle(this, name, versionRange, reexport, mandatory);