Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* ************************************************************************
  #
  #  DivConq
  #
  #  http://divconq.com/
  #
  #  Copyright:
  #    Copyright 2014 eTimeline, LLC. All rights reserved.
  #
 #  License:
 #    See the license.txt file in the project's top-level directory for details.
 #
 #  Authors:
 #    * Andy White
 #
 ************************************************************************ */
 package divconq.struct.scalar;
 
 
 public class IntegerStruct extends ScalarStruct {
 	protected Long value = null;
 
 	public DataType getType() {
 		if (this. != null)
 			return super.getType();
 		
 		return ..getSchema().getType("Integer");
 	}
 	
 	public IntegerStruct() {		
 	}
 
 	public IntegerStruct(Object v) {
 		this.adaptValue(v);
 	}
 
 	public Object getGenericValue() {
 		return this.;
 	}
 	
 	public void adaptValue(Object v) {
 		this. = Struct.objectToInteger(v);
 	}
 
 	public Long getValue() {
 		return this.
 	}
 	
 	public void setValue(Long v) { 
 		this. = v
 	}
 	
 	public boolean isEmpty() {
 		return (this. == null);
 	}
 	
 	public boolean isNull() {
 		return (this. == null);
 	}
 	
 	public void operation(StackEntry stackXElement code) {
 		// we are loose on the idea of null/zero.  operations always perform on 0, except Validate
 		if ((this. == null) && !"Validate".equals(code.getName()))
 			this. = 0L;
 		
 		if ("Inc".equals(code.getName())) {
 			this.++;
 			stack.resume();
 			return;
 		}
 		else if ("Dec".equals(code.getName())) {
 			this.--;
 			stack.resume();
 			return;
 		}
 		else if ("Set".equals(code.getName())) {
 			Struct sref = code.hasAttribute("Value")
 					? stack.refFromElement(code"Value")
 					: stack.resolveValue(code.getText());
 			
 			this.adaptValue(sref);
 			stack.resume();
 			return;
 		}
		else if ("Add".equals(code.getName())) {
			Struct sref = code.hasAttribute("Value")
stack.refFromElement(code"Value")
stack.resolveValue(code.getText());
			Long it = Struct.objectToInteger(sref);
			try { 
				this. += it;
			}
			catch (Exception x) {
				OperationContext.get().error("Error doing " + code.getName() + ": " + x);
			}
			stack.resume();
			return;
		}
		else if ("Subtract".equals(code.getName())) {
			Struct sref = code.hasAttribute("Value")
stack.refFromElement(code"Value")
stack.resolveValue(code.getText());
			try {
				this. -= Struct.objectToInteger(sref);			
			}
			catch (Exception x) {
				OperationContext.get().error("Error doing " + code.getName() + ": " + x);
			}
			stack.resume();
			return;
		}
		else if ("Multiply".equals(code.getName())) {
			Struct sref = code.hasAttribute("Value")
stack.refFromElement(code"Value")
stack.resolveValue(code.getText());
			try {
				this. *= Struct.objectToInteger(sref);			
			}
			catch (Exception x) {
				OperationContext.get().error("Error doing " + code.getName() + ": " + x);
			}
			stack.resume();
			return;
		}
		else if ("Divide".equals(code.getName())) {
			Struct sref = code.hasAttribute("Value")
stack.refFromElement(code"Value")
stack.resolveValue(code.getText());
			try {
				this. /= Struct.objectToInteger(sref);			
			}
			catch (Exception x) {
				OperationContext.get().error("Error doing " + code.getName() + ": " + x);
			}
			stack.resume();
			return;
		}
		else if ("Min".equals(code.getName())) {
			Struct sref = code.hasAttribute("Value")
stack.refFromElement(code"Value")
stack.resolveValue(code.getText());
			try {
				this. = Math.min(this., Struct.objectToInteger(sref));			
			}
			catch (Exception x) {
				OperationContext.get().error("Error doing " + code.getName() + ": " + x);
			}
			stack.resume();
			return;
		}
		else if ("Max".equals(code.getName())) {
			Struct sref = code.hasAttribute("Value")
stack.refFromElement(code"Value")
stack.resolveValue(code.getText());
			try {
				this. = Math.max(this., Struct.objectToInteger(sref));			
			}
			catch (Exception x) {
				OperationContext.get().error("Error doing " + code.getName() + ": " + x);
			}
			stack.resume();
			return;
		}
		else if ("Abs".equals(code.getName())) {
			this. = Math.abs(this.);			
			stack.resume();
			return;
		}
		else if ("Random".equals(code.getName())) {
			long from = 1;
			long to = 100;
			try {
				if (code.hasAttribute("From")) 
						from = Struct.objectToInteger(stack.refFromElement(code"From"));
				if (code.hasAttribute("To")) 
						to = Struct.objectToInteger(stack.refFromElement(code"To"));
				this. = ..nextInt((int) (to - from)) + from;			
			}
			catch (Exception x) {
				OperationContext.get().error("Error doing " + code.getName() + ": " + x);
			}
			stack.resume();
			return;
		}
		super.operation(stackcode);
	}
    @Override
    protected void doCopy(Struct n) {
    	super.doCopy(n);
    	
    	IntegerStruct nn = (IntegerStruct)n;
    	nn.value = this.;
    }
    
	public Struct deepCopy() {
		this.doCopy(cp);
		return cp;
	}
	public boolean equals(Object obj) {
		return (IntegerStruct.comparison(thisobj) == 0);
	}
	public int compare(Object y) {
		return IntegerStruct.comparison(thisy);
	}
	public int hashCode() {
		return (this. == null) ? 0 : this..hashCode();
	}
	public String toString() {
		return (this. == null) ? "null" : this..toString();
	}
		return this.;
	}
	public static int comparison(Object xObject y)
	{
		Long xv = Struct.objectToInteger(x);
		Long yv = Struct.objectToInteger(y);
		if ((yv == null) && (xv == null))
			return 0;
		if (yv == null)
			return 1;
		if (xv == null)
			return -1;
		return xv.compareTo(yv);
	}
	public boolean checkLogic(StackEntry stackXElement source) {
		return Struct.objectToBooleanOrFalse(this.);
	}
New to GrepCode? Check out our FAQ X