![JAR search and dependency download from the Maven repository](/logo.png)
net.sf.nakeduml.visitor.AbstractOJVisitor Maven / Gradle / Ivy
package net.sf.nakeduml.visitor;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import net.sf.nakeduml.feature.NakedUmlConfig;
import net.sf.nakeduml.feature.visit.VisitorAdapter;
import net.sf.nakeduml.javageneration.JavaTextSource;
import net.sf.nakeduml.javametamodel.OJClass;
import net.sf.nakeduml.javametamodel.OJClassifier;
import net.sf.nakeduml.javametamodel.OJElement;
import net.sf.nakeduml.javametamodel.OJPackage;
import net.sf.nakeduml.javametamodel.OJPathName;
import net.sf.nakeduml.metamodel.workspace.INakedModelWorkspace;
import net.sf.nakeduml.textmetamodel.TextOutputRoot;
import net.sf.nakeduml.textmetamodel.TextWorkspace;
public class AbstractOJVisitor extends VisitorAdapter {
protected OJPackage copyJavaModel;
protected NakedUmlConfig config;
protected TextWorkspace textWorkspace;
protected Set persistentClasses;
protected INakedModelWorkspace umlWorkspace;
protected Map classPathNames = new HashMap();
public void initialize(INakedModelWorkspace workspace, OJPackage copyJavaModel,NakedUmlConfig config,TextWorkspace textWorkspace, Set persistentClasses){
this.copyJavaModel = copyJavaModel;
this.config = config;
this.textWorkspace = textWorkspace;
this.persistentClasses = persistentClasses;
this.umlWorkspace = workspace;
for (OJClass clazz : persistentClasses) {
this.classPathNames.put(clazz.getPathName().toJavaString() ,clazz.getPathName());
}
}
public void initialize(OJPackage copyJavaModel,NakedUmlConfig config,TextWorkspace textWorkspace){
this.copyJavaModel = copyJavaModel;
this.config = config;
this.textWorkspace = textWorkspace;
}
@Override
public Collection extends OJElement> getChildren(OJElement root){
if(root instanceof OJPackage){
Set results = new HashSet();
OJPackage ojp = (OJPackage) root;
results.addAll(ojp.getSubpackages());
results.addAll(ojp.getInterfaces());
results.addAll(ojp.getClasses());
return results;
}
return Collections.emptySet();
}
protected void createTextPath(OJClassifier c,String outputRoot){
try{
TextOutputRoot or = textWorkspace.findOrCreateTextOutputRoot(outputRoot);
List names = c.getPathName().getHead().getNames();
names.add(c.getName() + ".java");
or.findOrCreateTextFile(names, new JavaTextSource(c));
}catch(Exception e){
throw new RuntimeException(e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy