Package com.google.opengse.parser

Examples of com.google.opengse.parser.Chset$Range


    }
  }


  static Parser<RequestContext> getParser() {
    Chset wsp = new Chset(" \t\r\n");

    // recognize standard methods
    Parser<RequestContext> method = null;
    for (String methodName : STANDARD_METHODS) {
      Parser<RequestContext> p = new Strcaselit(methodName).action(
          new ParserFactory.MethodAction(methodName));
      if (method == null) {
        method = p;
      } else {
        method = Parser.alternative(method, p);
      }
    }

    // support nonstandard methods too
    method = Parser.alternative(
        method,
        Chset.ALPHA.plus().action(new ParserFactory.MethodAction()));

    Parser<RequestContext> uri
        = Chset.not(wsp).plus().action(new ParserFactory.UriAction());

    Parser<RequestContext> version =
      Parser.sequence(new Strcaselit("http/"),
                      Chset.DIGIT.plus().action(new MajorVersionAction()));
    version = Parser.sequence(version, new Chset('.'));
    version = Parser.sequence(version,
      Chset.DIGIT.plus().action(new MinorVersionAction()));

    Parser<RequestContext> reqline = Parser.sequence(method, wsp.plus());
    reqline = Parser.sequence(reqline, uri);
    reqline = Parser.sequence(reqline, wsp.plus());
    reqline = Parser.sequence(reqline, version);

    return reqline;
  }
View Full Code Here


   * @param text a Chset representing a character in a quoted pair.
   * @param qtext a Chset representing a character that need not be quoted.
   */
  static Parser<MimeContentHeader> createParameterParser(
      Chset text, Chset qtext) {
    Chset special = new Chset(TSPECIAL_CHARS);
    Chset token = Chset.difference(Chset.difference(Chset.ANYCHAR,
                                                    Chset.WHITESPACE),
                                   special);

    // TODO(spencer): handling of quoted pairs is not correct in this parser.
    // They are simply left as \CHAR. Changing this now, however, would cause
    // existing servers to get different (possibly incompatible) inputs.
    // See ChunkHeader.java for a correct implementation.
    Parser<MimeContentHeader> quotedPair =
        Parser.sequence(new Chset('\\'), text);
    Parser<MimeContentHeader> quotedString =
        Parser.alternative(qtext, quotedPair);
    quotedString = quotedString.star().action(new ParamValueAction());
    quotedString = Parser.sequence(new Chset('"'), quotedString);
    quotedString = Parser.sequence(quotedString, new Chset('"'));

    Parser<MimeContentHeader> name =
        token.plus().action(new ParamNameAction());
    Parser<MimeContentHeader> value =
      token.plus().action(new ParamValueAction());
    value = Parser.alternative(value, quotedString);

    Parser<Object> wsp = Chset.WHITESPACE.star();
    Parser<MimeContentHeader> parameters =
      Parser.sequence(wsp, new Chset(';'));
    parameters = Parser.sequence(parameters, wsp);
    parameters = Parser.sequence(parameters, name);
    parameters = Parser.sequence(parameters, wsp);
    parameters = Parser.sequence(parameters, new Chset('='));
    parameters = Parser.sequence(parameters, wsp);
    parameters = Parser.sequence(parameters, value);
    return parameters.star();
  }
View Full Code Here

    public static Link[] selectAlternate(Entry entry) {
        return selectAlternate(entry, Locale.getDefault());
    }

    public static Link[] selectAlternate(Source source, Locale locale) {
        return selectAlternate(source, new Range(Lang.fromLocale(locale), true));
    }
View Full Code Here

    public static Link[] selectAlternate(Source source, Locale locale) {
        return selectAlternate(source, new Range(Lang.fromLocale(locale), true));
    }

    public static Link[] selectAlternate(Entry entry, Locale locale) {
        return selectAlternate(entry, new Range(Lang.fromLocale(locale), true));
    }
View Full Code Here

    }

    public static Link[] selectAlternate(Entry entry, Locale... locales) {
        Range[] ranges = new Range[locales.length];
        for (int n = 0; n < locales.length; n++)
            ranges[n] = new Range(Lang.fromLocale(locales[n]), true);
        return selectAlternate(entry, ranges);
    }
View Full Code Here

    }

    public static Link[] selectAlternate(Entry entry, String... ranges) {
        Range[] r = new Range[ranges.length];
        for (int n = 0; n < ranges.length; n++)
            r[n] = new Range(ranges[n], true);
        return selectAlternate(entry, r);
    }
View Full Code Here

    }

    public static Link[] selectAlternate(Source source, Locale... locales) {
        Range[] ranges = new Range[locales.length];
        for (int n = 0; n < locales.length; n++)
            ranges[n] = new Range(Lang.fromLocale(locales[n]), true);
        return selectAlternate(source, ranges);
    }
View Full Code Here

    }

    @Test
    public void test4647Matching() throws Exception {
        Lang lang = new Lang("en-Latn-US-valencia");
        Range range1 = new Range("*", true);
        Range range2 = new Range("en-*", true);
        Range range3 = new Range("en-Latn-*", true);
        Range range4 = new Range("en-US-*", true);
        Range range5 = new Range("en-*-US-*", true);
        Range range6 = new Range("*-US", true);
        Range range7 = new Range("*-valencia", true);
        Range range8 = new Range("*-FR", true);
        assertTrue(range1.matches(lang, true));
        assertTrue(range2.matches(lang, true));
        assertTrue(range3.matches(lang, true));
        assertTrue(range4.matches(lang, true));
        assertTrue(range5.matches(lang, true));
        assertTrue(range6.matches(lang, true));
        assertTrue(range7.matches(lang, true));
        assertFalse(range8.matches(lang, true));
    }
View Full Code Here

        String script = lang.getScript().getName();
        String region = lang.getRegion().getName();
        String variant = lang.getVariant().getName();

        // Perform extended range matching
        Range range = new Range("en-US-*", true);
        System.out.println(range.matches(lang, true));

        // Locale integration
        Locale locale = lang.getLocale();
        System.out.println(locale);
    }
View Full Code Here

    }

    public static Link[] selectAlternate(Source source, String... ranges) {
        Range[] r = new Range[ranges.length];
        for (int n = 0; n < ranges.length; n++)
            r[n] = new Range(ranges[n], true);
        return selectAlternate(source, r);
    }
View Full Code Here

TOP

Related Classes of com.google.opengse.parser.Chset$Range

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.