/** true if the supplied name and version are complete; updates if the known data is incomplete; * throws if there is a mismatch; false if the supplied data is incomplete */ private boolean matchSetOrFail(String source, String name, String version) { boolean suppliedIsComplete = true; if (Strings.isBlank(name)) { suppliedIsComplete = false; } else if (Strings.isBlank(inferredMetadata.getSymbolicName())) { ((BasicManagedBundle)inferredMetadata).setSymbolicName(name); } else if (!Objects.equal(inferredMetadata.getSymbolicName(), name)){ throw new IllegalArgumentException("Symbolic name mismatch '"+name+"' from "+source+" (expected '"+inferredMetadata.getSymbolicName()+"')"); } if (Strings.isBlank(version)) { suppliedIsComplete = false; } else if (Strings.isBlank(inferredMetadata.getSuppliedVersionString())) { ((BasicManagedBundle)inferredMetadata).setVersion(version); } else if (!BrooklynVersionSyntax.equalAsOsgiVersions(inferredMetadata.getSuppliedVersionString(), version)) { throw new IllegalArgumentException("Bundle version mismatch '"+version+"' from "+source+" (expected '"+inferredMetadata.getSuppliedVersionString()+"')"); } return suppliedIsComplete; }