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

org.snapscript.core.variable.Reference Maven / Gradle / Ivy

package org.snapscript.core.variable;

import static org.snapscript.core.constraint.Constraint.NONE;

import org.snapscript.core.constraint.Constraint;

public class Reference extends Value {
   
   private Constraint constraint;
   private Object value;
   private int modifiers;
   
   public Reference(Object value) {
      this(value, NONE);
   }
   
   public Reference(Object value, Constraint constraint) {
      this(value, constraint, -1);
   }
   
   public Reference(Object value, Constraint constraint, int modifiers) {
      this.constraint = constraint; 
      this.modifiers = modifiers;
      this.value = value;
   }
   
   @Override
   public boolean isProperty(){
      return modifiers != -1;
   }
   
   @Override
   public int getModifiers(){
      return modifiers;
   }
   
   @Override
   public Constraint getConstraint() {
      return constraint;
   }
   
   @Override
   public  T getValue() {
      return (T)value;
   }

   @Override
   public void setValue(Object value) {
      this.value = value;
   }
   
   @Override
   public String toString() {
      return String.valueOf(value);
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy