
org.romaframework.aspect.console.ClassCommands Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of roma-console Show documentation
Show all versions of roma-console Show documentation
Roma Framework module for build console application
The newest version!
package org.romaframework.aspect.console;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.romaframework.aspect.console.feature.ConsoleClassFeatures;
import org.romaframework.core.schema.SchemaAction;
import org.romaframework.core.schema.SchemaClass;
public class ClassCommands {
private SchemaClass schemaClass;
private Map> actionsMap = new HashMap>();
private List actions = new ArrayList();
public ClassCommands(SchemaClass schemaClass) {
for (SchemaAction action : schemaClass.getActions().values()) {
ActionCommand comm = new ActionCommand(action, this);
Map maps = actionsMap.get(comm.getName());
if (maps == null) {
maps = new HashMap();
actionsMap.put(comm.getName(), maps);
}
maps.put(comm.getAction().getParameterNumber(), comm);
actions.add(comm);
}
this.schemaClass = schemaClass;
}
public List getActions() {
return actions;
}
public SchemaClass getSchemaClass() {
return schemaClass;
}
public Map getActions(String alias) {
return actionsMap.get(alias);
}
public ActionCommand getAction(String alias, Integer nArgs) {
Map maps = actionsMap.get(alias);
if (maps != null) {
return maps.get(nArgs);
}
return null;
}
public String getName() {
String name;
if (this.schemaClass.isSettedFeature(ConsoleClassFeatures.NAME)) {
name = this.schemaClass.getFeature(ConsoleClassFeatures.NAME);
} else {
name = this.schemaClass.getName();
}
return name;
}
public ActionCommand getDefaultAction(String[] args, int i) {
String defaultAction = getSchemaClass().getFeature(ConsoleClassFeatures.DEFAULT_ACTION);
ActionCommand commandAction = getAction(defaultAction, i);
if (commandAction == null) {
Map maps = actionsMap.get(defaultAction);
commandAction = maps.get(1);
if (commandAction != null && !commandAction.getAction().getParameterIterator().next().getType().isAssignableAs(String[].class)) {
return null;
}
}
return commandAction;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy