package com.hbbohua.water.domain; import com.hbbohua.water.domain.literal.AttributeNames; import com.ooxsoft.ecsi.domain.Unit; import com.hbbohua.water.domain.literal.ValueIds; 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 Pipeline extends Unit { /** * 指定地图标记的类型(点、线、圆、矩形、多边形等) * * @return 地图标记的类型 */ @Override public Value locationType() { return Value.forId(ValueIds.LocationType_polyline); } /** * 获取管径计量单位 * * @return 管径计量单位 */ @Nullable public UnitOfMeasure getDiameterUnitOfMeasure() { return getAttributeValue(AttributeNames.diameterUnitOfMeasure); } /** * 设置管径计量单位 * * @param diameterUnitOfMeasure 管径计量单位 */ public void setDiameterUnitOfMeasure(UnitOfMeasure diameterUnitOfMeasure) { setAttributeValue(AttributeNames.diameterUnitOfMeasure, diameterUnitOfMeasure); } /** * 获取管径 * * @return 管径 */ @Nullable public Integer getDiameter() { return getAttributeValue(AttributeNames.diameter); } /** * 设置管径 * * @param diameter 管径 */ public void setDiameter(Integer diameter) { setAttributeValue(AttributeNames.diameter, diameter); } /** * 对象持久化前处理。该方法由对象持久化框架回调。在将对象从非持久化状态"TRANSIENT"转换为已持久化状态"MANAGED"之前触发。 * 子类重写该方法时,要考虑是否调用super.xxx(),以及调用先后时机,以免造成无意的父类代码逻辑被覆盖(丢失) */ @Override protected void prePersist() { super.prePersist(); //默认管径 毫米 if (getDiameterUnitOfMeasure() == null) { setDiameterUnitOfMeasure(UnitOfMeasure.forId(UnitOfMeasureIdsHex.MM)); } } }