/** * Creates a new DynamicVariables object given a set of {@link Attributes}. * @param atts a set of {@link Attributes}. */ public DynamicVariables(Attributes atts) { this.nonInterfaceVariables = new ArrayList<>(); this.interfaceVariables = new ArrayList<>(); this.mapping = new ConcurrentHashMap<>(); for (Attribute att : atts.getListOfNonSpecialAttributes()) { VariableBuilder builder = new VariableBuilder(att); VariableImplementation var = new VariableImplementation(builder, nonInterfaceVariables.size()); if (mapping.containsKey(var.getName())) { throw new IllegalArgumentException("Attribute list contains duplicated names"); } this.mapping.put(var.getName(), var.getVarID()); nonInterfaceVariables.add(var.getVarID(), var); VariableImplementation interfaceVariable = VariableImplementation.newInterfaceVariable(var); var.setInterfaceVariable(interfaceVariable); interfaceVariables.add(var.getVarID(), interfaceVariable); } }
/** * Creates a new DynamicVariables object given a list of Attributes and their corresponding distribution types. * @param atts a set of {@link Attributes}. * @param typeDists a {@link java.util.HashMap} object that maps the Attributes to their distribution types. */ public DynamicVariables(Attributes atts, Map<Attribute, DistributionTypeEnum> typeDists) { this.nonInterfaceVariables = new ArrayList<>(); this.interfaceVariables = new ArrayList<>(); for (Attribute att : atts.getListOfNonSpecialAttributes()) { VariableBuilder builder; if (typeDists.containsKey(att)) { builder = new VariableBuilder(att, typeDists.get(att)); }else{ builder = new VariableBuilder(att); } VariableImplementation var = new VariableImplementation(builder, nonInterfaceVariables.size()); if (mapping.containsKey(var.getName())) { throw new IllegalArgumentException("Attribute list contains duplicated names"); } this.mapping.put(var.getName(), var.getVarID()); nonInterfaceVariables.add(var.getVarID(), var); VariableImplementation interfaceVariable = VariableImplementation.newInterfaceVariable(var); var.setInterfaceVariable(interfaceVariable); interfaceVariables.add(var.getVarID(), interfaceVariable); } }
/** * Creates a new dynamic Variable given an {@link Attribute} object and a distribution type. * @param att a given {@link Attribute}. * @param distributionTypeEnum a {@link DistributionTypeEnum} object. * @return a new dynamic {@link Variable} object. */ public Variable newDynamicVariable(Attribute att, DistributionTypeEnum distributionTypeEnum) { VariableBuilder variableBuilder = new VariableBuilder(att); variableBuilder.setDistributionType(distributionTypeEnum); VariableImplementation var = new VariableImplementation(variableBuilder, nonInterfaceVariables.size()); if (mapping.containsKey(var.getName())) { throw new IllegalArgumentException("Attribute list contains duplicated names"); } this.mapping.put(var.getName(), var.getVarID()); nonInterfaceVariables.add(var); VariableImplementation interfaceVariable = VariableImplementation.newInterfaceVariable(var); var.setInterfaceVariable(interfaceVariable); interfaceVariables.add(var.getVarID(), interfaceVariable); return var; }
/** * Creates a new real dynamic Variable given an {@link Variable} object. * @param var a given {@link Variable} object. * @return a new dynamic {@link Variable} object. */ public Variable newRealDynamicVariable(Variable var){ if (!var.isObservable()) { throw new IllegalArgumentException("A Real variable should be created from an observed variable"); } if (var.getStateSpaceType().getStateSpaceTypeEnum()!= StateSpaceTypeEnum.REAL) { throw new IllegalArgumentException("An Real variable should be created from a real variable"); } VariableBuilder builder = new VariableBuilder(var.getAttribute()); builder.setName(var.getName()+"_Real"); VariableImplementation varNew = new VariableImplementation(builder, nonInterfaceVariables.size()); if (mapping.containsKey(varNew.getName())) { throw new IllegalArgumentException("Attribute list contains duplicated names"); } this.mapping.put(varNew.getName(), varNew.getVarID()); nonInterfaceVariables.add(varNew); VariableImplementation interfaceVariable = VariableImplementation.newInterfaceVariable(var); varNew.setInterfaceVariable(interfaceVariable); interfaceVariables.add(varNew.getVarID(), interfaceVariable); return varNew; }
/** * Creates a new dynamic Variable given a name, a distribution type, and a state space type. * @param name a given {@code String} that represents the name of the dynamic variable. * @param distributionTypeEnum a {@link DistributionTypeEnum} object. * @param stateSpaceType a {@link StateSpaceType} object. * @return a new dynamic {@link Variable} object. */ public Variable newDynamicVariable(String name, DistributionTypeEnum distributionTypeEnum, StateSpaceType stateSpaceType) { VariableBuilder variableBuilder = new VariableBuilder(); variableBuilder.setName(name); variableBuilder.setDistributionType(distributionTypeEnum); variableBuilder.setStateSpaceType(stateSpaceType); variableBuilder.setObservable(false); VariableImplementation var = new VariableImplementation(variableBuilder, nonInterfaceVariables.size()); if (mapping.containsKey(var.getName())) { throw new IllegalArgumentException("Attribute list contains duplicated names"); } this.mapping.put(var.getName(), var.getVarID()); nonInterfaceVariables.add(var); VariableImplementation interfaceVariable = VariableImplementation.newInterfaceVariable(var); var.setInterfaceVariable(interfaceVariable); interfaceVariables.add(var.getVarID(), interfaceVariable); return var; }
/** * Creates a new dynamic Variable from a given Attribute. * @param att a given {@link Attribute}. * @return a new {@link Variable} object. */ public Variable newDynamicVariable(Attribute att) { VariableImplementation var = new VariableImplementation(new VariableBuilder(att), nonInterfaceVariables.size()); if (mapping.containsKey(var.getName())) { throw new IllegalArgumentException("Attribute list contains duplicated names"); } this.mapping.put(var.getName(), var.getVarID()); nonInterfaceVariables.add(var); VariableImplementation interfaceVariable = VariableImplementation.newInterfaceVariable(var); var.setInterfaceVariable(interfaceVariable); interfaceVariables.add(var.getVarID(), interfaceVariable); return var; }
public static VariableImplementation newInterfaceVariable(Variable variable){ return new VariableImplementation(variable); }