All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.nakeduml.obsolete.generator.DefaultBundleGenerator Maven / Gradle / Ivy

package net.sf.nakeduml.obsolete.generator;

import java.io.File;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import net.sf.nakeduml.feature.visit.VisitBefore;
import net.sf.nakeduml.feature.visit.VisitorAdapter;
import net.sf.nakeduml.metamodel.core.INakedClassifier;
import net.sf.nakeduml.metamodel.core.INakedElement;
import net.sf.nakeduml.metamodel.core.INakedEnumeration;
import net.sf.nakeduml.metamodel.core.INakedEnumerationLiteral;
import net.sf.nakeduml.metamodel.core.INakedPackage;
import net.sf.nakeduml.metamodel.mapping.IMappingInfo;
import net.sf.nakeduml.metamodel.statemachines.INakedState;
import net.sf.nakeduml.metamodel.statemachines.INakedStateMachine;
import nl.klasse.octopus.model.IAssociationEnd;
import nl.klasse.octopus.model.IAttribute;
import nl.klasse.octopus.model.IModelElement;
import nl.klasse.octopus.model.IOperation;
import nl.klasse.octopus.model.IParameter;

public class DefaultBundleGenerator extends VisitorAdapter{
	DefaultBundleMap defaultBundle = new DefaultBundleMap();
	@VisitBefore(matchSubclasses = true)
	public void attribute(IAttribute t){
		putHumanName(t);
	}
	private void putHumanName(IModelElement a){
		if(a instanceof INakedElement){
			IMappingInfo mi = ((INakedElement) a).getMappingInfo();
			if(mi.getNakedUmlId() != null){
				this.defaultBundle.put(mi.getQualifiedJavaName(), mi.getHumanName().toString());
				int nakedUmlId = mi.getNakedUmlId().intValue();
			}
		}
	}
	@VisitBefore(matchSubclasses = true)
	public void class_After(INakedClassifier c){
		putHumanName(c);
		if(c instanceof INakedEnumeration){
			List literals = ((INakedEnumeration) c).getLiterals();
			Iterator iter = literals.iterator();
			while(iter.hasNext()){
				INakedEnumerationLiteral l = (INakedEnumerationLiteral) iter.next();
				putHumanName(l);
			}
		}else if(c instanceof INakedStateMachine){
			Collection literals = ((INakedStateMachine) c).getAllStates();
			Iterator iter = literals.iterator();
			while(iter.hasNext()){
				INakedState l = iter.next();
				putHumanName(l);
			}
		}
	}
	@VisitBefore(matchSubclasses = true)
	public void navigation(IAssociationEnd end){
		putHumanName(end);
	}
	@VisitBefore(matchSubclasses = true)
	public void operation_After(IOperation o){
		putHumanName(o);
	}
	@VisitBefore(matchSubclasses = true)
	public void parameter(IParameter o){
		putHumanName(o);
	}
	public void store(File root){
		this.defaultBundle.store(root);
	}
	public DefaultBundleMap getDefaultBundle(){
		return this.defaultBundle;
	}
	@Override
	public Collection getChildren(INakedElement root){
		return root.getOwnedElements();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy