class MphChlOp extends Operator {

    static Sensor getSensorType(Product sourceProduct) {
        boolean isOlci = isValidL1bSourceProduct(sourceProduct, Sensor.OLCI) ||
                isValidBrrSourceProduct(sourceProduct, Sensor.OLCI);
        if (isOlci) {
            return Sensor.OLCI;
        }

        boolean isMeris3rd = isValidL1bSourceProduct(sourceProduct, Sensor.MERIS_3RD) ||
                (isValidBrrSourceProduct(sourceProduct, Sensor.MERIS_3RD) &&
                        sourceProduct.containsBand(SensorConstants.MERIS_L1B_FLAGS_NAME));
        if (isMeris3rd) {
            return Sensor.MERIS_3RD;
        }

        boolean isMeris4th = isValidL1bSourceProduct(sourceProduct, Sensor.MERIS_4TH) ||
                (isValidBrrSourceProduct(sourceProduct, Sensor.MERIS_4TH) &&
                        sourceProduct.containsBand(SensorConstants.MERIS_4TH_L1B_FLAGS_NAME));
        if (isMeris4th) {
            return Sensor.MERIS_4TH;
        }

        throw new OperatorException("Source product not applicable to this operator.\n" +
                                            "Only OLCI and MERIS are supported");
    }

}