/** * Check if a class name matches an import statement. * Class matches if the package name used in <import.java/> matches * * @param name Name of class * @param import_ SCA contribution import * @return true if this is a matching import */ private boolean classNameMatchesImport(String name, Import import_) { if (import_ instanceof JavaImport && name != null && name.lastIndexOf('.') > 0) { JavaImport javaImport = (JavaImport) import_; String packageName = name.substring(0, name.lastIndexOf('.')); if (javaImport.getPackage().endsWith(".*")) { String prefix = javaImport.getPackage().substring(0, javaImport.getPackage().length() -1); if (packageName.startsWith(prefix)) { return true; } } else { return packageName.equals(javaImport.getPackage()); } } return false; }
public void write(JavaImport javaImport, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException { // Write <import.java> writer.writeStartElement(IMPORT_JAVA.getNamespaceURI(), IMPORT_JAVA.getLocalPart()); if (javaImport.getPackage() != null) { writer.writeAttribute(PACKAGE, javaImport.getPackage()); } if (javaImport.getLocation() != null) { writer.writeAttribute(LOCATION, javaImport.getLocation()); } writer.writeEndElement(); }
/** * Check if a class name matches an import statement. * Class matches if the package name used in <import.java/> matches * * @param name Name of class * @param import_ SCA contribution import * @return true if this is a matching import */ private boolean classNameMatchesImport(String name, Import import_) { if (import_ instanceof JavaImport && name != null && name.lastIndexOf('.') > 0) { JavaImport javaImport = (JavaImport) import_; String packageName = name.substring(0, name.lastIndexOf('.')); if (javaImport.getPackage().endsWith(".*")) { String prefix = javaImport.getPackage().substring(0, javaImport.getPackage().length() -1); if (packageName.startsWith(prefix)) { return true; } } else { return packageName.equals(javaImport.getPackage()); } } return false; }
public void write(JavaImport javaImport, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException, XMLStreamException { // Write <import.java> writer.writeStartElement(IMPORT_JAVA.getNamespaceURI(), IMPORT_JAVA.getLocalPart()); if (javaImport.getPackage() != null) { writer.writeAttribute(PACKAGE, javaImport.getPackage()); } if (javaImport.getLocation() != null) { writer.writeAttribute(LOCATION, javaImport.getLocation()); } writer.writeEndElement(); }
JavaImport javaImport = (JavaImport) import_; if (javaImport.getPackage().endsWith(".*")) { String packageName = name.substring(0, name.lastIndexOf('/')).replace('/', '.'); String prefix = javaImport.getPackage().substring(0, javaImport.getPackage().length() -1); if (packageName.startsWith(prefix)) { return true; return packageName.equals(javaImport.getPackage().replaceAll("\\.", "/"));
JavaImport javaImport = (JavaImport) import_; if (javaImport.getPackage().endsWith(".*")) { String packageName = name.substring(0, name.lastIndexOf('/')).replace('/', '.'); String prefix = javaImport.getPackage().substring(0, javaImport.getPackage().length() -1); if (packageName.startsWith(prefix)) { return true; return packageName.equals(javaImport.getPackage().replaceAll("\\.", "/"));
public ClassLoaderModelResolver(final Contribution contribution, FactoryExtensionPoint modelFactories) throws IOException { super(getContributionURLs(contribution), parentClassLoader(contribution)); this.contribution = new WeakReference<Contribution>(contribution); // Index Java import resolvers by package name Map<String, List<ModelResolver>> resolverMap = new HashMap<String, List<ModelResolver>>(); for (Import import_: this.contribution.get().getImports()) { if (import_ instanceof JavaImport) { JavaImport javaImport = (JavaImport)import_; List<ModelResolver> resolvers = resolverMap.get(javaImport.getPackage()); if (resolvers == null) { resolvers = new ArrayList<ModelResolver>(); resolverMap.put(javaImport.getPackage(), resolvers); } resolvers.add(javaImport.getModelResolver()); } } // Create a delegating model resolver for each imported package for (Map.Entry<String, List<ModelResolver>> entry: resolverMap.entrySet()) { importResolvers.put(entry.getKey(), new DefaultDelegatingModelResolver(entry.getValue())); } }
public ClassLoaderModelResolver(final Contribution contribution, FactoryExtensionPoint modelFactories) throws IOException { super(getContributionURLs(contribution), parentClassLoader(contribution)); this.contribution = new WeakReference<Contribution>(contribution); // Index Java import resolvers by package name Map<String, List<ModelResolver>> resolverMap = new HashMap<String, List<ModelResolver>>(); for (Import import_: this.contribution.get().getImports()) { if (import_ instanceof JavaImport) { JavaImport javaImport = (JavaImport)import_; List<ModelResolver> resolvers = resolverMap.get(javaImport.getPackage()); if (resolvers == null) { resolvers = new ArrayList<ModelResolver>(); resolverMap.put(javaImport.getPackage(), resolvers); } resolvers.add(javaImport.getModelResolver()); } } // Create a delegating model resolver for each imported package for (Map.Entry<String, List<ModelResolver>> entry: resolverMap.entrySet()) { importResolvers.put(entry.getKey(), new DefaultDelegatingModelResolver(entry.getValue())); } }
private List<ContributionDescription> findExportingContributions(Import imprt) { List<ContributionDescription> ics = new ArrayList<ContributionDescription>(); // TODO: Handle Imports in a more extensible way for (String curi : domainRegistry.getInstalledContributionURIs()) { ContributionDescription cd = domainRegistry.getInstalledContribution(curi); if (imprt instanceof JavaImport) { for (String s : cd.getJavaExports()) { if (s.startsWith(((JavaImport)imprt).getPackage())) { ics.add(cd); } } } else if (imprt instanceof NamespaceImport) { if (cd.getNamespaceExports().contains(((NamespaceImport)imprt).getNamespace())) { ics.add(cd); } } } return ics; }
private List<ContributionDescription> findExportingContributions(Import imprt) { List<ContributionDescription> ics = new ArrayList<ContributionDescription>(); // TODO: Handle Imports in a more extensible way for (String curi : domainRegistry.getInstalledContributionURIs()) { ContributionDescription cd = domainRegistry.getInstalledContribution(curi); if (imprt instanceof JavaImport) { for (String s : cd.getJavaExports()) { if (s.startsWith(((JavaImport)imprt).getPackage())) { ics.add(cd); } } } else if (imprt instanceof NamespaceImport) { if (cd.getNamespaceExports().contains(((NamespaceImport)imprt).getNamespace())) { ics.add(cd); } } } return ics; }
JavaImport javaImport = (JavaImport)import_; if (javaImport.getPackage().equals(packageName)) {
JavaImport javaImport = (JavaImport)import_; if (javaImport.getPackage().equals(packageName)) {
public void configureMetaData(Contribution contribution) { if (contribution.getDeployables() != null) { for (Composite composite : contribution.getDeployables()) { getDeployables().add(composite.getURI()); } } if (contribution.getExports() != null) { for (Export export : contribution.getExports()) { // TODO: Handle these and others in a more extensible way if (export instanceof JavaExport) { getJavaExports().add(((JavaExport)export).getPackage()); } else if (export instanceof NamespaceExport) { getNamespaceExports().add(((NamespaceExport)export).getNamespace()); } } } if (contribution.getImports() != null) { for (Import imprt : contribution.getImports()) { // TODO: Handle these and others in a more extensible way if (imprt instanceof JavaImport) { getJavaImports().add(((JavaImport)imprt).getPackage()); } else if (imprt instanceof NamespaceImport) { getNamespaceImports().add(((NamespaceImport)imprt).getNamespace()); } } } }
for (Import imports : contribution.getImports()) { if (imports instanceof JavaImport) { if (((JavaImport)extension).getPackage().equals(((JavaImport) imports).getPackage())) { error(context.getMonitor(), "DuplicateJavaImports", reader);
public void configureMetaData(Contribution contribution) { if (contribution.getDeployables() != null) { for (Composite composite : contribution.getDeployables()) { getDeployables().add(composite.getURI()); } } if (contribution.getExports() != null) { for (Export export : contribution.getExports()) { // TODO: Handle these and others in a more extensible way if (export instanceof JavaExport) { getJavaExports().add(((JavaExport)export).getPackage()); } else if (export instanceof NamespaceExport) { getNamespaceExports().add(((NamespaceExport)export).getNamespace()); } } } if (contribution.getImports() != null) { for (Import imprt : contribution.getImports()) { // TODO: Handle these and others in a more extensible way if (imprt instanceof JavaImport) { getJavaImports().add(((JavaImport)imprt).getPackage()); } else if (imprt instanceof NamespaceImport) { getNamespaceImports().add(((NamespaceImport)imprt).getNamespace()); } } } }
for (Import imports : contribution.getImports()) { if (imports instanceof JavaImport) { if (((JavaImport)extension).getPackage().equals(((JavaImport) imports).getPackage())) { error(context.getMonitor(), "DuplicateJavaImports", reader);