PrologValue.java
Go to the documentation of this file.
00001 /* 
00002  * Copyright (c) 2010, Lorenz Moesenlechner
00003  * All rights reserved.
00004  * 
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions are met:
00007  * 
00008  *     * Redistributions of source code must retain the above copyright
00009  *       notice, this list of conditions and the following disclaimer.
00010  *     * Redistributions in binary form must reproduce the above copyright
00011  *       notice, this list of conditions and the following disclaimer in the
00012  *       documentation and/or other materials provided with the distribution.
00013  *     * Neither the name of Willow Garage, Inc. nor the names of its
00014  *       contributors may be used to endorse or promote products derived from
00015  *       this software without specific prior written permission.
00016  * 
00017  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00018  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00019  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00020  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00021  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00022  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00023  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00024  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00025  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00026  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00027  * POSSIBILITY OF SUCH DAMAGE.
00028  */
00029 
00030 package edu.tum.cs.ias.knowrob.json_prolog;
00031 
00032 import java.util.Vector;
00033 
00034 
00035 public class PrologValue {
00036 
00037         public enum value_type { DOUBLE, INT, STRING, LIST, TERM, EMPTY } ;
00038         
00039         private Object value_;
00040         private value_type type_;
00041 
00042                 
00043         public PrologValue() {
00044                 type_=value_type.EMPTY;
00045         }
00046         
00047             
00048         public PrologValue(double value) {
00049                 value_ = value;
00050                 type_  = value_type.DOUBLE;
00051         }
00052         
00053         public PrologValue(int value) {
00054                         value_ = value;
00055                         type_  = value_type.INT;
00056           }
00057 
00058         public PrologValue(long value) {
00059                         value_ = value;
00060                         type_  = value_type.INT;
00061           }
00062           
00063         public PrologValue(String value) {
00064                         value_ = value;
00065                         type_  = value_type.STRING;               
00066           }
00067 
00068         public PrologValue(PrologTerm value) {
00069                         value_ = value;
00070                         type_  = value_type.TERM;
00071           }
00072 
00073         public PrologValue(Vector<PrologValue> value) {
00074                   value_ = value;
00075                   type_ = value_type.LIST;
00076           }
00077           
00078         public value_type type() { return type_; }
00079           public  boolean isDouble() { return type_ == value_type.DOUBLE; }
00080           public  boolean isInt()    { return type_ == value_type.INT; }
00081           public  boolean isString() { return type_ == value_type.STRING; }
00082           public  boolean isTerm()   { return type_ == value_type.TERM; }
00083           public  boolean islist()   { return type_ == value_type.LIST; }
00084           public  boolean isValid()  { return type_ != value_type.EMPTY; }
00085 
00086         
00087         @Override
00088         @SuppressWarnings("unchecked")
00089         public String toString() {
00090                   
00091                   switch(type_) {
00092                     case DOUBLE:
00093                     case INT:
00094                     case STRING:
00095                     case TERM:
00096                       return value_.toString();
00097                       
00098 
00099                     case LIST: {
00100                         
00101                         String res = "[";
00102                         Vector<PrologValue> vals =  (Vector<PrologValue>) value_;
00103                         
00104                         for(int i=0;i<vals.size();i++) {
00105                                 
00106                                 res+=vals.get(i).toString();
00107                                 
00108                                 if(i<vals.size()-1)
00109                                         res+=", ";
00110                         }
00111                         return res + "]";
00112                     }
00113                     default:
00114                       return "";
00115                   }
00116                   
00117           }
00118           
00119         public Object getValue() {
00120                 return value_;
00121         }
00122 }
00123 
00124 


json_prolog
Author(s): Lorenz Moesenlechner, Moritz Tenorth
autogenerated on Sat Dec 28 2013 17:10:00