static boolean setFlagCodingsAndBitmaskDefs(final Product product) { final FlagCoding flagCoding = new FlagCoding("GLOBCOLOUR"); for (Flags flag : Flags.values()) { flagCoding.addFlag(flag.name(), flag.getMask(), flag.getDescription()); } boolean codingAdded = false; for (final String name : product.getBandNames()) { if (name.endsWith("flags")) { final Band band = product.getBand(name); if (band == null || band.isFloatingPointType() || band.getFlagCoding() != null) { continue; } if (!product.getFlagCodingGroup().contains(flagCoding.getName())) { product.getFlagCodingGroup().add(flagCoding); } band.setSampleCoding(flagCoding); addBitmaskDefinitions(product, name); codingAdded = true; } } return codingAdded; }