private OOFactSet create_factset(Class<?> classObj, boolean all_discrete) { // System.out.println("WorkingMemory.create_factset element "+ element ); OOFactSet newfs = new OOFactSet(classObj); Field[] element_fields = classObj.getDeclaredFields(); for (Field f : element_fields) { String f_name = f.getName(); Class<?>[] f_class = {f.getType()}; System.out.println( "WHat is this f: " + f.getType() + " the name " + f_name + " class " + f.getClass() + " and the name" + f.getClass().getName()); if (Util.isSimpleType(f_class)) { Domain<?> fieldDomain; if (!domainset.containsKey(f_name)) { fieldDomain = DomainFactory.createDomainFromClass(f.getType(), f_name); domainset.put(f_name, fieldDomain); } else fieldDomain = domainset.get(f_name); Annotation[] annotations = f.getAnnotations(); // iterate over the annotations to locate the MaxLength constraint if it exists DomainSpec spec = null; for (Annotation a : annotations) { if (a instanceof DomainSpec) { spec = (DomainSpec) a; // here it is !!! break; } } if (spec != null) { fieldDomain.setReadingSeq(spec.readingSeq()); if (!all_discrete) fieldDomain.setDiscrete(spec.discrete()); } /* * ID3 would * if it is integer and the annotation saying that the field is continuous * ignore the domain * if it is double / float and the annotation saying that the field is continuous * ignore the domain if it has more than 10 values ? * if it is string and the annotation saying that the field is continuous * what to do?? */ newfs.addDomain(f_name, fieldDomain); } } factsets.put(classObj.getName(), newfs); return newfs; }