/** * Gets the external resource dependencies. * * @return the external resource dependencies */ public ExternalResourceDependency[] getExternalResourceDependencies() { ExternalResourceDependency[] erd = editor.getAeDescription().getExternalResourceDependencies(); if (null == erd) { return new ExternalResourceDependency[0]; } return erd; }
/** * Convenience method to get the external resource dependencies from a resource specifier. * Unfortunately different methods need to be used for different sub-classes. * * @throws IllegalArgumentException * if the sub-class passed is not supported. */ private static ExternalResourceDependency[] getExternalResourceDependencies( ResourceSpecifier aDesc) { if (aDesc instanceof CollectionReaderDescription) { return ((CollectionReaderDescription) aDesc).getExternalResourceDependencies(); } else if (aDesc instanceof AnalysisEngineDescription) { return ((AnalysisEngineDescription) aDesc).getExternalResourceDependencies(); } else { throw new IllegalArgumentException( "Resource specified cannot have external resource dependencies"); } }
/** * Scan the given resource specifier for external resource dependencies and whenever a dependency * a compatible type is found, the given resource is bound to it. * * @param aDesc * a description. * @param aResDesc * the resource description. */ private static void bind(AnalysisEngineDescription aDesc, ExternalResourceDescription aResDesc) throws InvalidXMLException, ClassNotFoundException { // Recursively address delegates if (!aDesc.isPrimitive()) { for (Object delegate : aDesc.getDelegateAnalysisEngineSpecifiers().values()) { bindResource((ResourceSpecifier) delegate, aResDesc); } } // Bind if necessary Class<?> resClass = Class.forName(getImplementationName(aResDesc)); for (ExternalResourceDependency dep : aDesc.getExternalResourceDependencies()) { Class<?> apiClass = Class.forName(dep.getInterfaceName()); // Never bind fields of type Object. See also ExternalResourceInitializer#getApi() if (apiClass.equals(Object.class)) { continue; } if (apiClass.isAssignableFrom(resClass)) { bindExternalResource(aDesc, dep.getKey(), aResDesc); } } }
/** * Scan the given resource specifier for external resource dependencies and whenever a dependency * with the given key is encountered, the given resource is bound to it. * * @param aDesc * a description. * @param aKey * the key to bind to. * @param aResDesc * the resource description. */ private static void bind(AnalysisEngineDescription aDesc, String aKey, ExternalResourceDescription aResDesc) throws InvalidXMLException { // Recursively address delegates if (!aDesc.isPrimitive()) { for (Object delegate : aDesc.getDelegateAnalysisEngineSpecifiers().values()) { bindResource((ResourceSpecifier) delegate, aKey, aResDesc); } } // Bind if necessary for (ExternalResourceDependency dep : aDesc.getExternalResourceDependencies()) { if (aKey.equals(dep.getKey())) { bindExternalResource(aDesc, aKey, aResDesc); } } }
/** * Link common collection descriptors from ae. * * @param r the r */ private void linkCommonCollectionDescriptorsFromAe(ResourceCreationSpecifier r) { r.setExternalResourceDependencies(aeDescription.getExternalResourceDependencies()); r.setMetaData(convertFromAeMetaData((AnalysisEngineMetaData) aeDescription.getMetaData())); r.setResourceManagerConfiguration(aeDescription.getResourceManagerConfiguration()); }
throws InvalidXMLException { if (aDesc.getExternalResourceDependency(aKey) == null) { ExternalResourceDependency[] deps = aDesc.getExternalResourceDependencies(); if (deps == null) { deps = new ExternalResourceDependency[] {};