private static String createValidMaskExpression(Product product, final String expression) throws ParseException { return BandArithmetic.getValidMaskExpression(expression, new Product[]{product}, 0, null); }
static void setMagicWandMask(Product product, String expression) { String validMaskExpression; try { validMaskExpression = BandArithmetic.getValidMaskExpression(expression, new Product[]{product}, 0, null); } catch (ParseException e) { validMaskExpression = null; } if (validMaskExpression != null) { expression = "(" + validMaskExpression + ") && (" + expression + ")"; } final Mask magicWandMask = product.getMaskGroup().get(MAGIC_WAND_MASK_NAME); if (magicWandMask != null) { magicWandMask.getImageConfig().setValue("expression", expression); } else { product.addMask(MAGIC_WAND_MASK_NAME, expression, "Magic wand mask", Color.RED, 0.5); } }
BandArithmetic.getValidMaskExpression(expression, new Product[]{contextProduct}, 0, null); } catch (ParseException e) { String errorMessage = "The source band could not be created.\nThe expression could not be parsed:\n" + e.getMessage(); /*I18N*/
Product[] products = getCompatibleProducts(virtualBand); int defaultProductIndex = Arrays.asList(products).indexOf(product); BandArithmetic.getValidMaskExpression(expression, products, defaultProductIndex, null); } catch (ParseException e) { JOptionPane.showMessageDialog(dialog.getJDialog(),
variableValidExpr = BandArithmetic.getValidMaskExpression(variableExpr, new Product[]{product}, 0, validMaskExpression); } catch (ParseException e) { throw new OperatorException("Failed to parse valid-mask expression: " + e.getMessage(), e);
vme = BandArithmetic.getValidMaskExpression("c + w * q - w", new Product[]{p1}, 0, null); assertEquals("(f.CLOUD && !f.INVALID) " + "&& (f.WATER && !f.INVALID)", vme); vme = BandArithmetic.getValidMaskExpression("c + w * q - w", new Product[]{p1}, 0, ""); assertEquals("(f.CLOUD && !f.INVALID) " + "&& (f.WATER && !f.INVALID)", vme); vme = BandArithmetic.getValidMaskExpression("c + w * q - w", new Product[]{p1}, 0, "c >= 0.0"); assertEquals("(c >= 0.0) " + "&& (f.CLOUD && !f.INVALID) " + "&& (f.WATER && !f.INVALID)", vme); Product p3 = createProduct(fc, 3); vme = BandArithmetic.getValidMaskExpression("c + ($2.w - $1.w) * $3.q + ($2.l - $1.l) * $3.c", new Product[]{p1, p3, p2}, 0, null); assertEquals("(f.CLOUD && !f.INVALID) " + "&& ($3.f.CLOUD && !$3.f.INVALID)", vme); vme = BandArithmetic.getValidMaskExpression("c + ($2.w - $1.w) * $3.q + ($2.l - $1.l) * $3.c", new Product[]{p1, p3, p2}, 0, "c >= 0.0"); assertEquals("(c >= 0.0) " + "&& ($3.f.CLOUD && !$3.f.INVALID)", vme); vme = BandArithmetic.getValidMaskExpression("$2.w", new Product[]{p1, p2}, 0, null); assertEquals("($2.f.WATER && !$2.f.INVALID)", vme);
Product[] products = getCompatibleProducts(); int defaultProductIndex = Arrays.asList(products).indexOf(targetProduct); validMaskExpression = BandArithmetic.getValidMaskExpression(getExpression(), products, defaultProductIndex, null); } catch (ParseException e) { String errorMessage = "The band could not be created.\nAn parse error occurred:\n" + e.getMessage(); /*I18N*/