public override bool ResolveObject(VariableTable varTable) { if (!base.ResolveObject(varTable)) { return(false); } if (_isRef) { ApplianceState stateVar = (ApplianceState)varTable[_stringValue]; _valid = stateVar != null; if (_valid) { _value = new ValueConstraint(stateVar); } } else { try { _value = new PUCValue(State.Type.ValueSpace.Validate(_stringValue)); } catch (Exception) { _valid = false; throw new PUC.Parsers.SpecParseException(this.LineNumber, "String value does not match the value space of state " + State.Name); } } return(_valid); }
public virtual bool IsSameValue(IPUCValue val) { if (val is PUCValue) { if (val.Value != this.Value) { return(false); } return(true); } return(false); }
public virtual bool IsSameValue(IPUCValue val) { if (val is ValueConstraint) { ValueConstraint vc = (ValueConstraint)val; if (vc._stateName != this._stateName) { return(false); } return(true); } return(false); }
public StateValueDependency(ApplianceState state, ApplianceState refState) : base(state) { _stringValue = refState.FullName; _isRef = true; _valid = false; if (!state.Type.ValueSpace.IsSameSpace(refState.Type.ValueSpace)) { throw new PUC.Parsers.SpecParseException(0, "Value space of state " + state.FullName + " does not match space of state " + refState.FullName); } _value = new ValueConstraint(refState); _valid = true; }
public StateValueDependency(ApplianceState state, string value) : base(state) { _stringValue = value; _isRef = false; try { _valid = false; _value = new PUCValue(State.Type.ValueSpace.Validate(_stringValue)); } catch (Exception) { throw new PUC.Parsers.SpecParseException(0, "Value does not match value space of state " + State.Name); } _valid = true; }