@Deprecated public static <C> Class<? extends C> loadFromClassOrInherit(String handle, Class<C> ifaceClass, Map<String, Object> tuples) throws Exception { String[] name = handle.split("!"); if (name[0].equals("class")) { return Class.forName(name[1]).asSubclass(ifaceClass); } else { if (name[0].equals("inherit")) { AnyObject yaml = ConfigurationLoader.load(name[1]); return getFromClassOrInherit(yaml, ifaceClass, tuples); } else { throw new IllegalArgumentException( "Illegal experiment descriptor, must contain one node of type <class> or <inherit>"); } } }
@Override public <T extends Resource> T initializeResource(AnyObject config, String node, Class<T> type) throws Exception { AnyObject descriptor = config.getAnyObject(node); if (descriptor == null) { return null; } Map<String, Object> tuples = Maps.newLinkedHashMap(); Class<? extends Resource> cseClass = getFromClassOrInherit(descriptor, Resource.class, tuples); return buildResource(cseClass, tuples, type); }
@Override public CollectionReader buildCollectionReader(AnyObject config, int stageId) throws Exception { AnyObject descriptor = config.getAnyObject("collection-reader"); Map<String, Object> tuples = Maps.newLinkedHashMap(); tuples.put(EXPERIMENT_UUID_PROPERTY, experimentUuid); tuples.put(STAGE_ID_PROPERTY, stageId); Class<? extends CollectionReader> readerClass = getFromClassOrInherit(descriptor, CollectionReader.class, tuples); Object[] params = getParamList(tuples); CollectionReader reader = CollectionReaderFactory.createCollectionReader(readerClass, typeSystem, params); return reader; }
public static <C> Class<? extends C> loadFromClassOrInherit(ResourceHandle resource, Class<C> ifaceClass, Map<String, Object> tuples) throws Exception { if (resource.getType() == HandleType.CLASS) { return Class.forName(resource.resource).asSubclass(ifaceClass); } else { if (resource.getType() == HandleType.INHERIT) { AnyObject yaml = ConfigurationLoader.load(resource.resource); return getFromClassOrInherit(yaml, ifaceClass, tuples); } else { throw new IllegalArgumentException( "Illegal experiment descriptor, must contain one node of type <class> or <inherit>"); } } }
public AnalysisEngineDescription buildComponent(int stageId, int phase, AnyObject aeDescription) throws Exception { Map<String, Object> tuples = Maps.newLinkedHashMap(); tuples.put(BasePhase.QA_INTERNAL_PHASEID, new Integer(phase)); tuples.put(EXPERIMENT_UUID_PROPERTY, experimentUuid); tuples.put(STAGE_ID_PROPERTY, stageId); Class<? extends AnalysisComponent> ac = getFromClassOrInherit(aeDescription, AnalysisComponent.class, tuples); Object[] params = getParamList(tuples); AnalysisEngineDescription description = AnalysisEngineFactory.createPrimitiveDescription(ac, typeSystem, typePriorities, params); String name = (String) tuples.get("name"); description.getAnalysisEngineMetaData().setName(name); return description; }
public static <C> Class<? extends C> getFromClassOrInherit(AnyObject descriptor, Class<C> ifaceClass, Map<String, Object> tuples) throws Exception { for (AnyTuple tuple : descriptor.getTuples()) { if (!FILTER.contains(tuple.getKey())) { if (!tuples.containsKey(tuple.getKey())) { tuples.put(tuple.getKey(), tuple.getObject()); } } } String name = descriptor.getString("class"); if (name != null) { return Class.forName(name).asSubclass(ifaceClass); } else { String resource = descriptor.getString("inherit"); if (resource != null) { AnyObject yaml = ConfigurationLoader.load(resource); return getFromClassOrInherit(yaml, ifaceClass, tuples); } else { throw new IllegalArgumentException( "Illegal experiment descriptor, must contain one node of type <class> or <inherit>"); } } }