public static List<ResolveTrace> parseException(String message) { Matcher m = RESOLVE_MESSAGE_P.matcher(message); List<ResolveTrace> result = new ArrayList<>(); while (m.lookingAt()) { ResolveTrace rt = new ResolveTrace(); rt.bsn = m.group("bsn"); rt.message = m.group("msg"); rt.version = m.group("version"); String namespace = m.group("ns"); String attrs = m.group("attrs"); String dirs = m.group("directives"); try { Matcher filter = RESOLVE_DIRECTIVES_P.matcher(dirs); if (filter.matches()) { String f = filter.group("filter"); Expression parse = fp.parse(f); rt.requirement = parse.toString(); } else rt.requirement = "[" + namespace + "] {" + attrs + "} {" + dirs + "}"; } catch (Exception e) { rt.requirement = "[" + namespace + "] {" + attrs + "} {" + dirs + "} " + e; } result.add(rt); } return result; }
@Override public String query() { if (expressions == null || expressions.length == 0) return null; if (expressions[0] instanceof WithRangeExpression) { return expressions[0].query(); } List<String> words = new ArrayList<>(); for (Expression e : expressions) { String query = e.query(); if (query != null) words.add(query); } return Strings.join(" ", words); }
public static Set<String> getReferencedServices(Builder builder) { Set<String> referencedServices = new TreeSet<>(); for (Entry<String, Attrs> entry : builder.getRequireCapability() .entrySet()) { if (Processor.removeDuplicateMarker(entry.getKey()) .equals("osgi.service")) { Attrs attrs = entry.getValue(); String filter = attrs.get("filter:"); if (filter != null && !filter.isEmpty()) { FilterParser filterParser = new FilterParser(); Expression expr = filterParser.parse(filter); referencedServices.addAll(expr.visit(new FindReferencedServices())); } } } if (referencedServices.contains(MATCH_ALL)) { return Collections.singleton(MATCH_ALL); } else { return referencedServices; } }
public static List<ResolveTrace> parseException(String message) { Matcher m = RESOLVE_MESSAGE_P.matcher(message); List<ResolveTrace> result = new ArrayList<>(); while (m.lookingAt()) { ResolveTrace rt = new ResolveTrace(); rt.bsn = m.group("bsn"); rt.message = m.group("msg"); rt.version = m.group("version"); String namespace = m.group("ns"); String attrs = m.group("attrs"); String dirs = m.group("directives"); try { Matcher filter = RESOLVE_DIRECTIVES_P.matcher(dirs); if (filter.matches()) { String f = filter.group("filter"); Expression parse = fp.parse(f); rt.requirement = parse.toString(); } else rt.requirement = "[" + namespace + "] {" + attrs + "} {" + dirs + "}"; } catch (Exception e) { rt.requirement = "[" + namespace + "] {" + attrs + "} {" + dirs + "} " + e; } result.add(rt); } return result; }
public static Set<String> getReferencedServices(Builder builder) { Set<String> referencedServices = new TreeSet<>(); for (Entry<String, Attrs> entry : builder.getRequireCapability() .entrySet()) { if (Processor.removeDuplicateMarker(entry.getKey()) .equals("osgi.service")) { Attrs attrs = entry.getValue(); String filter = attrs.get("filter:"); if (filter != null && !filter.isEmpty()) { FilterParser filterParser = new FilterParser(); Expression expr = filterParser.parse(filter); referencedServices.addAll(expr.visit(new FindReferencedServices())); } } } if (referencedServices.contains(MATCH_ALL)) { return Collections.singleton(MATCH_ALL); } else { return referencedServices; } }
@Override public void toString(StringBuilder sb) { if (expressions != null && expressions.length > 0) { if (expressions[0] instanceof WithRangeExpression) { sb.append(expressions[0]); for (int i = 1; i < expressions.length; i++) { sb.append("; "); expressions[i].toString(sb); } return; } } sb.append("&"); super.toString(sb); }
@Override public void toString(StringBuilder sb) { if (expressions != null && expressions.length > 0) { if (expressions[0] instanceof WithRangeExpression) { sb.append(expressions[0]); for (int i = 1; i < expressions.length; i++) { sb.append("; "); expressions[i].toString(sb); } return; } } sb.append("&"); super.toString(sb); }
@Override public void toString(StringBuilder sb) { if (expressions != null && expressions.length > 0) { if (expressions[0] instanceof WithRangeExpression) { sb.append(expressions[0]); for (int i = 1; i < expressions.length; i++) { sb.append("; "); expressions[i].toString(sb); } return; } } sb.append("&"); super.toString(sb); }
@Override public String query() { if (expressions == null || expressions.length == 0) return null; if (expressions[0] instanceof WithRangeExpression) { return expressions[0].query(); } List<String> words = new ArrayList<String>(); for (Expression e : expressions) { String query = e.query(); if (query != null) words.add(query); } return Strings.join(" ", words); }
@Override public String query() { if (expressions == null || expressions.length == 0) return null; if (expressions[0] instanceof WithRangeExpression) { return expressions[0].query(); } List<String> words = new ArrayList<>(); for (Expression e : expressions) { String query = e.query(); if (query != null) words.add(query); } return Strings.join(" ", words); }
@Override public String query() { if (expressions == null || expressions.length == 0) return null; if (expressions[0] instanceof WithRangeExpression) { return expressions[0].query(); } List<String> words = new ArrayList<String>(); for (Expression e : expressions) { String query = e.query(); if (query != null) words.add(query); } return Strings.join(" ", words); }
public boolean eval(Map<String,Object> map) { return !expr.eval(map); }
@Override public void toString(StringBuilder sb) { if (expressions != null && expressions.length > 0) { if (expressions[0] instanceof WithRangeExpression) { sb.append(expressions[0]); for (int i = 1; i < expressions.length; i++) { sb.append("; "); expressions[i].toString(sb); } return; } } sb.append("&"); super.toString(sb); }
@Override public boolean eval(Map<String, ?> map) { return !expr.eval(map); }
public boolean eval(Map<String,Object> map) { return !expr.eval(map); }
@Override public boolean eval(Map<String, ?> map) { return !expr.eval(map); }
@Override public void toString(StringBuilder sb) { sb.append("!("); expr.toString(sb); sb.append(")"); } }
public boolean eval(Map<String,Object> map) { for (Expression e : expressions) { if (e.eval(map)) return true; } return false; }
public String toString() { StringBuilder sb = new StringBuilder(); toString(sb); return sb.toString(); }
public static Expression make(Expression expr) { if (expr == TRUE) return FALSE; if (expr == FALSE) return TRUE; Expression notexpr = expr.not(); if (notexpr != null) return notexpr; return new Not(expr); }