/** * Returns the cut in value if available. * * @param f The filter to handle. * @return See above. */ private String getValueFromFilter(Filter f) { if (f == null) return null; TransmittanceRange transmittance = f.getTransmittanceRange(); if (transmittance == null) return null; return ""+transmittance.getCutIn(); }
@Override public Object retrieve(String field) { if (field == null) { return null; } else if (field.equals(ID)) { return getId(); } else if (field.equals(VERSION)) { return getVersion(); } else if (field.equals(CUTIN)) { return getCutIn(); } else if (field.equals(CUTOUT)) { return getCutOut(); } else if (field.equals(CUTINTOLERANCE)) { return getCutInTolerance(); } else if (field.equals(CUTOUTTOLERANCE)) { return getCutOutTolerance(); } else if (field.equals(TRANSMITTANCE)) { return getTransmittance(); } else if (field.equals(DETAILS)) { return getDetails(); } else { if (_dynamicFields != null) { return _dynamicFields.get(field); } return null; } }
/** * Returns <code>true</code> if the channel has emission metadata, * <code>false</code> otherwise. * * @param f The filter to handle. * @return See above. */ private static boolean isFilterHasEmissionData(Filter f) { if (f == null) return false; TransmittanceRange transmittance = f.getTransmittanceRange(); if (transmittance == null) return false; return transmittance.getCutIn() != null; }
/** * Returns the range of the wavelength or <code>null</code>. * * @param filter The filter to handle. * @param emission Passed <code>true</code> to indicate that the filter is * an emission filter, <code>false</code> otherwise. * @return See above. */ private static Length getValueFromFilter(Filter filter, boolean emission) { if (filter == null) return null; TransmittanceRange transmittance = filter.getTransmittanceRange(); if (transmittance == null) return null; Length cutIn = transmittance.getCutIn(); if (emission) { if (cutIn == null) return null; return new Length(cutIn.getValue()+RANGE, cutIn.getUnit()); } Length cutOut = transmittance.getCutOut(); if (cutOut == null) return null; if (cutIn == null || cutIn.getValue() == 0) cutIn = new Length(cutOut.getValue()-2*RANGE, cutOut.getUnit()); // FIXME: are these in the same unit? Length v = new Length((cutIn.getValue()+cutOut.getValue()/2), cutOut.getUnit()); if (v.getValue() < 0) return new Length(0, cutOut.getUnit()); return v; }