/** * Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT * All rights reserved. Use is subject to license terms. See LICENSE.TXT */ package org.diirt.support.pva.adapters; import org.epics.pvdata.pv.PVBoolean; import org.epics.pvdata.pv.PVField; import org.epics.pvdata.pv.PVScalar; import org.epics.pvdata.pv.PVStructure; import org.diirt.vtype.VBoolean; import org.diirt.vtype.VTypeToString; /** * @author dkumar */ public class PVFieldToVBoolean extends AlarmTimeDisplayExtractor implements VBoolean { protected final Boolean value; public PVFieldToVBoolean(PVStructure pvField, boolean disconnected) { this("value", pvField, disconnected); } public PVFieldToVBoolean(String fieldName, PVStructure pvField, boolean disconnected) { this(pvField.getSubField(fieldName), pvField, disconnected); } public PVFieldToVBoolean(PVField field, PVStructure pvParent, boolean disconnected) { super(pvParent, disconnected); if (field instanceof PVBoolean) value = ((PVBoolean)field).get(); else if (field instanceof PVScalar) value = convert.toInt((PVScalar)field) != 0; else value = null; } @Override public Boolean getValue() { return value; } @Override public String toString() { return VTypeToString.toString(this); } }