package net.sf.minuteProject.configuration.bean.model.statement; import java.util.ArrayList; import java.util.List; import net.sf.minuteProject.configuration.bean.AbstractConfiguration; import net.sf.minuteProject.configuration.bean.Package; import net.sf.minuteProject.configuration.bean.Template; import net.sf.minuteProject.configuration.bean.model.data.Table; import net.sf.minuteProject.configuration.bean.model.data.constant.Direction; public class Composite extends AbstractConfiguration{ private Composites composites; private Composite inputComposite, outputComposite; private Direction direction; private List<Table> entities; private String executionType; private Package pack; private List<CompositeQueryElement> queries; public void setComposites(Composites composites) { this.composites = composites; } public String getExecutionType() { return executionType; } public void setExecutionType(String executionType) { this.executionType = executionType; } public List<CompositeQueryElement> getQueries() { if (queries==null) queries = new ArrayList<CompositeQueryElement>(); return queries; } public void setQueries(List<CompositeQueryElement> queries) { this.queries = queries; } public Composites getComposites() { return composites; } public void addQuery (CompositeQueryElement query) { query.setComposite(this); getQueries().add(query); } public Composite getComposite(Direction direction) { if (Direction.IN.equals(direction)) return getInputComposite(); else return getOutputComposite(); } public Composite getInputComposite() { if (inputComposite!=null) return inputComposite; return retrieveComposite(Direction.IN); } public Composite getOutputComposite() { if (outputComposite!=null) return outputComposite; return retrieveComposite(Direction.OUT); } private Composite retrieveComposite (Direction dir) { Composite composite = new Composite(); composite.direction = dir; composite.setName(this.name); composite.setExecutionType(this.executionType); composite.setPackage(this.getPackage()); composite.setQueries(getQueries()); for (CompositeQueryElement query : getQueries()) { Query q = query.getQuery(); Table table = q.getEntity(dir); // table.setName(q.getName()); table.setPackage(q.getPackage()); composite.getEntities().add(table); } return composite; } public List<Table> getEntities() { if (entities==null) entities = new ArrayList<Table>(); return entities; } public void setEntities(List<Table> entities) { this.entities = entities; } public String getTechnicalPackage(Template template) { net.sf.minuteProject.configuration.bean.Package p = getPackage(); if (p == null) return "ERROR_PACKAGE_IS_NULL"; return p.getTechnicalPackage(template); } public Package getPackage() { return pack; } public void setPackage(Package pack) { this.pack = pack; } public Direction getDirection() { return direction; } public void setDirection(Direction direction) { this.direction = direction; } public boolean isDirection (Direction direction) { return (this.direction==direction); } }