package org.openhab.domain.rule; import org.openhab.domain.util.StringHandler; /** * Created by Tony Alpskog in 2014. */ public abstract class EntityDataType<T> implements IEntityDataType<T> { protected String mName; protected T mValue; protected String mDataSourceId; protected OnOperandValueChangedListener mOnOperandValueChangedListener; public EntityDataType() { this(null, null); } public EntityDataType(String name, T value) { this.mName = name; this.mValue = value; } public void setName(String name) { mName = name; } @Override public String getFormattedString(){ return mValue != null? mValue.toString() : "Undefined"; } // // public boolean isReadable() { // return mIsReadable; // } // // public boolean isWritable() { // return mIsWritable; // } @Override public String getName() { return mName; } @Override public Class<?> getDataType() { return mValue.getClass(); } @Override public T getValue() { return mValue; } @Override public String toString() { StringBuilder sb = new StringBuilder(); if(!StringHandler.isNullOrEmpty(mName)) sb.append(mName + " "); sb.append("[" + getFormattedString() + "]"); return sb.toString(); } @Override public void setDataSourceId(String value) { mDataSourceId = value; } @Override public String getDataSourceId() { return mDataSourceId; } @Override public abstract T valueOf(String input); @Override public RuleTreeItem getRuleTreeItem(int treeIndex) { return null; } public void setOnOperandValueChangedListener(OnOperandValueChangedListener onOperandValueChangedListener) { mOnOperandValueChangedListener = onOperandValueChangedListener; } }