org.simantics.databoard.parser.repository
Class DataValueRepository

java.lang.Object
  extended by org.simantics.databoard.parser.repository.DataValueRepository

public class DataValueRepository
extends java.lang.Object

Data value repository is a collection of name data values. Each value is associated with type.

It can also translate data lines and value texts to objects and print values as

Author:
Hannu Niemistö

Constructor Summary
DataValueRepository()
           
 
Method Summary
 void addValueDefinition(AstValueDefinition def)
          Adds a value definition to the repository
 java.lang.String addValueDefinition(java.lang.String def)
          Adds a value definition to the repository
 void addValueDefinitions(java.util.Collection<AstValueDefinition> defs)
          Adds multiple value definitions to the repository
 void addValueDefinitions(java.lang.String def)
          Adds multiple value definitions to the repository
 void clear()
           
 MutableVariant get(java.lang.String name)
           
 BindingScheme getBindingScheme()
           
 java.lang.String getName(java.lang.Object value)
           
 DataTypeRepository getTypeRepository()
           
 java.util.Set<java.lang.String> getValueNames()
          Get a view of the value names in this repository
 Datatype guessDataType(AstValue value)
          Gives a data type to a value heuristically.
 Datatype guessDataType(java.lang.String value)
          Gives a data type to a value heuristically.
 void print(java.lang.StringBuilder sb)
          Print the whole value repository
 java.lang.String printValue(java.lang.String valueName)
          Print the content part of a data value.
 void put(java.lang.String name, Binding binding, java.lang.Object value)
           
 void put(java.lang.String name, MutableVariant value)
           
 MutableVariant remove(java.lang.String name)
           
 void setBindingScheme(BindingScheme bindingScheme)
           
 void setTypeRepository(DataTypeRepository typeRepository)
           
 java.lang.String toString()
          Print the whole data value repository as a single multiline string
 java.lang.Object translate(AstValue value, Binding binding)
          Translates a data value from an abstract syntax tree to an object by the binding.
 java.lang.Object translate(java.lang.String value, Binding binding)
          Translates a data value from a string to an object by the binding.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DataValueRepository

public DataValueRepository()
Method Detail

get

public MutableVariant get(java.lang.String name)

getName

public java.lang.String getName(java.lang.Object value)

put

public void put(java.lang.String name,
                Binding binding,
                java.lang.Object value)

put

public void put(java.lang.String name,
                MutableVariant value)

remove

public MutableVariant remove(java.lang.String name)

clear

public void clear()

getValueNames

public java.util.Set<java.lang.String> getValueNames()
Get a view of the value names in this repository

Returns:
names

translate

public java.lang.Object translate(AstValue value,
                                  Binding binding)
                           throws DataTypeSyntaxError
Translates a data value from an abstract syntax tree to an object by the binding.

Parameters:
value -
binding -
Returns:
value
Throws:
DataTypeSyntaxError

translate

public java.lang.Object translate(java.lang.String value,
                                  Binding binding)
                           throws DataTypeSyntaxError
Translates a data value from a string to an object by the binding.

Parameters:
value -
binding -
Returns:
value
Throws:
DataTypeSyntaxError

addValueDefinition

public void addValueDefinition(AstValueDefinition def)
                        throws DataTypeSyntaxError
Adds a value definition to the repository

Parameters:
def -
Throws:
DataTypeSyntaxError

addValueDefinition

public java.lang.String addValueDefinition(java.lang.String def)
                                    throws DataTypeSyntaxError
Adds a value definition to the repository

Parameters:
def -
Returns:
name
Throws:
DataTypeSyntaxError

addValueDefinitions

public void addValueDefinitions(java.util.Collection<AstValueDefinition> defs)
                         throws DataTypeSyntaxError
Adds multiple value definitions to the repository

Parameters:
defs -
Throws:
DataTypeSyntaxError

addValueDefinitions

public void addValueDefinitions(java.lang.String def)
                         throws DataTypeSyntaxError
Adds multiple value definitions to the repository

Parameters:
def -
Throws:
DataTypeSyntaxError

getTypeRepository

public DataTypeRepository getTypeRepository()

setTypeRepository

public void setTypeRepository(DataTypeRepository typeRepository)

getBindingScheme

public BindingScheme getBindingScheme()

setBindingScheme

public void setBindingScheme(BindingScheme bindingScheme)

printValue

public java.lang.String printValue(java.lang.String valueName)
                            throws java.io.IOException,
                                   BindingException
Print the content part of a data value. This excludes the name and type of the value.

Parameters:
valueName -
Returns:
value or null if value doesn't exist
Throws:
BindingException
java.io.IOException

print

public void print(java.lang.StringBuilder sb)
           throws java.io.IOException,
                  BindingException
Print the whole value repository

Parameters:
sb -
Throws:
java.io.IOException
BindingException

toString

public java.lang.String toString()
Print the whole data value repository as a single multiline string

Overrides:
toString in class java.lang.Object
Throws:
RuntimeBindingException
{@link - RuntimeIOException}

guessDataType

public Datatype guessDataType(AstValue value)
                       throws DataTypeSyntaxError
Gives a data type to a value heuristically.

Throws:
DataTypeSyntaxError

guessDataType

public Datatype guessDataType(java.lang.String value)
                       throws DataTypeSyntaxError
Gives a data type to a value heuristically.

Throws:
DataTypeSyntaxError