package com.hbbohua.water.domain; import com.hbbohua.water.domain.literal.AttributeNames; import com.ooxsoft.ecsi.domain.Unit; import com.hbbohua.water.domain.literal.ValueIdsHex; import com.ooxsoft.objekt.domain.Value; import com.ooxsoft.platform.domain.UnitOfMeasure; import com.ooxsoft.platform.domain.literal.UnitOfMeasureIdsHex; import org.jetbrains.annotations.Nullable; /** * 压力计 */ public class Manometer extends Unit { /** * 指定地图标记的类型(点、线、圆、矩形、多边形等) * * @return 地图标记的类型 */ @Override public Value locationType() { return Value.forId(ValueIdsHex.LocationType_marker); } /** * 获取值 * * @return 值 */ @Nullable public Double getValue() { return getAttributeValue(AttributeNames.value); } /** * 设置值 * * @param value 值 */ public void setValue(Double value) { setAttributeValue(AttributeNames.value, value); } /** * 获取单位 * * @return 单位 */ @Nullable public UnitOfMeasure getUnitOfMeasure() { return getAttributeValue(AttributeNames.unitOfMeasure); } /** * 设置单位 * * @param unitOfMeasure 单位 */ public void setUnitOfMeasure(UnitOfMeasure unitOfMeasure) { setAttributeValue(AttributeNames.unitOfMeasure, unitOfMeasure); } /** * 对象持久化前处理。该方法由对象持久化框架回调。在将对象从非持久化状态"TRANSIENT"转换为已持久化状态"MANAGED"之前触发。 * 子类重写该方法时,要考虑是否调用super.xxx(),以及调用先后时机,以免造成无意的父类代码逻辑被覆盖(丢失) */ @Override protected void prePersist() { super.prePersist(); //默认压力单位 千帕 if (getUnitOfMeasure() == null) { setUnitOfMeasure(UnitOfMeasure.forId(UnitOfMeasureIdsHex.KPA)); } //增加动态属性名,填充实时库标签用 if(!containsDynamicAttribute(AttributeNames.value)){ setDynamicAttribute(AttributeNames.value,null,true); } } }