Interface Record

All Superinterfaces:
EvalContext, Serializable
All Known Implementing Classes:
MapRecord, PatchingRecord, RecordWrapper

public interface Record extends Serializable, EvalContext
Created by moelrue on 03.08.2015.
  • Field Details

  • Method Details

    • from

      static Record from(Object... keyVals)
      create new json'ish record from key value array. some value types are transformed / replaced automatically to ensure simple and easy-to-convert data structures - Map is transformed to Record - a Collection is transformed to Object[]
      Parameters:
      keyVals -
      Returns:
    • transform

      static Object transform(Object val)
      transform map/collections into Record, Object[] - Map is transformed to Record - a Collection is transformed to Object[]
      Parameters:
      val -
      Returns:
    • from

      static Record from(com.eclipsesource.json.JsonObject jsonObject)
    • from

      static Record from(Map<String,Object> map)
      create a new record from given key and values
      Parameters:
      map -
      Returns:
    • getKey

      String getKey()
    • getLastModified

      long getLastModified()
    • internal_setLastModified

      void internal_setLastModified(long tim)
    • internal_incSequence

      void internal_incSequence()
    • getSequence

      long getSequence()
    • internal_put

      Record internal_put(String key, Object value)
    • internal_updateLastModified

      default void internal_updateLastModified()
    • key

      Record key(String key)
      take care, kind of dangerous
      Parameters:
      key -
    • getFields

      String[] getFields()
    • getFieldSet

      default Set<String> getFieldSet()
    • put

      Record put(String field, Object value)
      puts a key value pair. type checking is applied to ensure data is json compatible. if value is null, the key is removed.
      Parameters:
      field -
      value -
      Returns:
    • getValue

      default Value getValue(String field)
      Specified by:
      getValue in interface EvalContext
    • mget

      default Object mget(Object... path)
    • mgetNum

      default Number mgetNum(Object... path)
    • mgetString

      default String mgetString(Object... path)
    • getInt

      default int getInt(String field)
    • getLong

      default long getLong(String field)
    • asList

      default List asList(String field)
      gets field and transforms Object[] to arraylist in case
      Parameters:
      field -
      Returns:
    • asSet

      default Set asSet(String field)
      gets field and transforms Object[] to HashSet in case
      Parameters:
      field -
      Returns:
    • putTransforming

      default Record putTransforming(String field, Object value)
    • haveRec

      default Record haveRec(String field)
      creates and sets an empty record in case
      Parameters:
      field -
      Returns:
    • getRec

      default Record getRec(String field)
      return sub-record in case present
      Parameters:
      field -
      Returns:
    • getAsList

      default <T> List<T> getAsList(String field)
      see asList
      Parameters:
      field -
      Returns:
    • getDouble

      default double getDouble(String field)
    • getString

      default String getString(String field)
    • getSafeString

      default String getSafeString(String field)
    • asString

      default String asString()
    • getBool

      default boolean getBool(String field)
    • reduced

      default Record reduced(String[] reducedFields)
    • omit

      default Record omit(String... fieldsToOmit)
    • shallowCopy

      Record shallowCopy()
      Returns:
      a shallow (!) copy of this record
    • deepCopy

      default Record deepCopy()
    • transformCopy

      Record transformCopy(TransformFunction transform)
      copies recursively applying given function to each value. if the transform returns v, its an identity copy if the transform returns null, the given key is removed from outer record. (if outer container is array, its removed)
      Parameters:
      transform -
      Returns:
    • getKeyVals

      default Object[] getKeyVals()
    • asMap

      default Map<String,Object> asMap()
      Returns:
      this record as a map
    • getRecord

      default Record getRecord()
    • stripOps

      default void stripOps()
      remove special operators on this record attributes
    • join

      default Record join(Record that)
      a simple tree merge (without any operators like deepMerge) copies all fields of given record to this. if this contains a record for a field e.g. this = { test: { a: 1, b: 2 } } and that = { test: { c: 1, b: 3 }} merging will be recursively resulting in { test: { a: 1, b: 3, c: 1 } }. for arrays all elements are appended if they do not yet exist. e.g. this = { test: [1,2,3] } and that = { test: [2,4,5] } will result in { test: [1,2,3,4,5] }
      Parameters:
      that -
      Returns:
    • deepMerge

      default Record deepMerge(Record record)
      merge all fields from given record to this including nested structures. Assumes pure json data types (String Number Boolean Object[] Record) attribute operators: '+' - insert into array '-' - remove from array '?+' - insert if not present into array
      Parameters:
      record -
    • toPrettyString

      default String toPrettyString()
    • toJson

      default com.eclipsesource.json.JsonObject toJson()
    • validateForJsonability

      default boolean validateForJsonability()
    • defaultEquals

      default boolean defaultEquals(Object other)
    • _afterLoad

      default boolean _afterLoad()
      called by the persistance layer after a record has been loaded from disk. can be used for type migration of an existing database. return true if the record should be re-persisted
    • asLong

      default long asLong(String key)
      tries to interpret the value as a long. In case its a string, its parsed.
      Parameters:
      key -
      Returns:
    • asDouble

      default double asDouble(String key)
      tries to interpret the value as a double. In case its a string, its parsed.
      Parameters:
      key -
      Returns:
    • getArr

      default Object[] getArr(String z)
    • containsKey

      boolean containsKey(String x)