Package com.hp.hpl.jena.iri

Examples of com.hp.hpl.jena.iri.IRI


        a JenaException that encapsulates a MalformedURIException. There doesn't
        appear to be a convenient URI.checkGood() kind of method, alas.
     */
    private String checkURI( String uri ) {
        if (demandGoodURIs) {
            IRI iri = factory.create( uri );
           
            if (iri.hasViolation(false) )
            throw new BadURIException( "Only well-formed absolute URIrefs can be included in RDF/XML output: "
                     + (iri.violations(false).next()).getShortMessage());
        }
            
           
        return uri;
    }
View Full Code Here


                requestsLeft--;
            }
        }
        GetMethod m = null;
        try {
            IRI iri;
            try {
                iri = iriFactory.construct(systemId);
            } catch (IRIException e) {
                IOException ioe = (IOException) new IOException(e.getMessage()).initCause(e);
                SAXParseException spe = new SAXParseException(e.getMessage(),
                        publicId, systemId, -1, -1, ioe);
                if (errorHandler != null) {
                    errorHandler.fatalError(spe);
                }
                throw spe;
            }
            if (!iri.isAbsolute()) {
                SAXParseException spe = new SAXParseException(
                        "Not an absolute URI.", publicId, systemId, -1, -1,
                        new IOException("Not an absolute URI."));
                if (errorHandler != null) {
                    errorHandler.fatalError(spe);
                }
                throw spe;
            }
            String scheme = iri.getScheme();
            if (!("http".equals(scheme) || "https".equals(scheme))) {
                String msg = "Unsupported URI scheme: \u201C" + scheme
                        + "\u201D.";
                SAXParseException spe = new SAXParseException(msg, publicId,
                        systemId, -1, -1, new IOException(msg));
                if (errorHandler != null) {
                    errorHandler.fatalError(spe);
                }
                throw spe;
            }
            try {
                systemId = iri.toASCIIString();
            } catch (MalformedURLException e) {
                IOException ioe = (IOException) new IOException(e.getMessage()).initCause(e);
                SAXParseException spe = new SAXParseException(e.getMessage(),
                        publicId, systemId, -1, -1, ioe);
                if (errorHandler != null) {
View Full Code Here

        fac.useSchemeSpecificRules("mailto", true); // XXX broken
        fac.useSchemeSpecificRules("file", true);
        fac.useSchemeSpecificRules("data", true); // XXX broken
        // XXX javascript?
        // fac.setQueryCharacterRestrictions(false);
        IRI iri;
        boolean data = false;
        try {
            CharSequencePair pair = splitScheme(literal);
            if (pair == null) {
                // no scheme or scheme is private
                iri = fac.construct(trimHtmlSpaces(literal.toString()));
            } else {
                CharSequence scheme = pair.getHead();
                CharSequence tail = pair.getTail();
                if (isWellKnown(scheme)) {
                    iri = fac.construct(trimHtmlSpaces(literal.toString()));
                } else if ("javascript".contentEquals(scheme)) {
                    // StringBuilder sb = new StringBuilder(2 +
                    // literal.length());
                    // sb.append("x-").append(literal);
                    // iri = fac.construct(sb.toString());
                    iri = null; // Don't bother user with generic IRI syntax
                    Reader reader = new BufferedReader(
                            new Utf8PercentDecodingReader(new StringReader(
                                    "function(event){" + tail.toString() + "}")));
                    // XXX CharSequenceReader
                    reader.mark(1);
                    int c = reader.read();
                    if (c != 0xFEFF) {
                        reader.reset();
                    }
                    try {
                        Context context = ContextFactory.getGlobal().enterContext();
                        context.setOptimizationLevel(0);
                        context.setLanguageVersion(Context.VERSION_1_6);
                        // -1 for lineno arg prevents Rhino from appending
                        // "(unnamed script#1)" to all error messages
                        context.compileReader(reader, null, -1, null);
                    } finally {
                        Context.exit();
                    }
                } else if ("data".contentEquals(scheme)) {
                    data = true;
                    iri = fac.construct(trimHtmlSpaces(literal.toString()));
                } else if (isHttpAlias(scheme)) {
                    StringBuilder sb = new StringBuilder(5 + tail.length());
                    sb.append("http:").append(tail);
                    iri = fac.construct(trimHtmlTrailingSpaces(sb.toString()));
                } else {
                    StringBuilder sb = new StringBuilder(2 + literal.length());
                    sb.append("x-").append(literal);
                    iri = fac.construct(trimHtmlTrailingSpaces(sb.toString()));
                }
            }
        } catch (IRIException e) {
            Violation v = e.getViolation();
            /*
             * Violation codes that are not "known" codes get assigned the
             * dummy value so that handling of them will fall through to
             * the default case.
             */
            KnownViolationCode vc = KnownViolationCode.valueOf("ZZZ_DUMMY_DEFAULT");
            try {
                /*
                 * If this violation code is one of the "known" Jena IRI
                 * violation codes we want to handle specifically, then use it
                 * as-is.
                 */
                vc = KnownViolationCode.valueOf(v.codeName());
            } catch (Exception ex) { }
            switch (vc) {
                case HAS_PASSWORD:
                    if (WARN) {
                        throw newDatatypeException(
                                underbarStringToSentence(v.component())
                                        + " component contains a password.",
                                WARN);
                    } else {
                        return;
                    }
                case NON_INITIAL_DOT_SEGMENT:
                    if (WARN) {
                        throw newDatatypeException(
                                "Path component contains a segment \u201C/../\u201D not at the beginning of a relative reference, or it contains a \u201C/./\u201D. These should be removed.",
                                WARN);
                    } else {
                        return;
                    }
                case PORT_SHOULD_NOT_BE_WELL_KNOWN:
                    if (WARN) {
                        throw newDatatypeException(
                                "Ports under 1024 should be accessed using the appropriate scheme name.",
                                WARN);
                    } else {
                        return;
                    }
                case COMPATIBILITY_CHARACTER:
                    if (WARN) {
                        throw newDatatypeException(
                                underbarStringToSentence(v.codeName()) + " in "
                                        + toAsciiLowerCase(v.component())
                                        + " component.", WARN);
                    } else {
                        return;
                    }
                case DNS_LABEL_DASH_START_OR_END:
                    throw newDatatypeException("Host component contains a DNS name with a \u201C-\u201D (dash) character at the beginning or end.");
                case DOUBLE_WHITESPACE:
                case WHITESPACE:
                    throw newDatatypeException("Whitespace in "
                            + toAsciiLowerCase(v.component()) + " component. "
                            + "Use \u201C%20\u201D in place of spaces.");
                case EMPTY_SCHEME:
                    throw newDatatypeException("Scheme component is empty.");
                case ILLEGAL_PERCENT_ENCODING:
                    throw newDatatypeException(underbarStringToSentence(v.component())
                            + " component contains a percent sign that is not followed by two hexadecimal digits.");
                case IP_V4_HAS_FOUR_COMPONENTS:
                    throw newDatatypeException("Host component is entirely numeric but does not have four components like an IPv4 address.");
                case IP_V4_OCTET_RANGE:
                    throw newDatatypeException("Host component contains a number not in the range 0-255, or a number with a leading zero.");
                case IP_V6_OR_FUTURE_ADDRESS_SYNTAX:
                    throw newDatatypeException("Host component contains an IPv6 (or IPvFuture) syntax violation.");
                case NOT_DNS_NAME:
                    throw newDatatypeException("Host component did not meet the restrictions on DNS names.");
                case REQUIRED_COMPONENT_MISSING:
                    throw newDatatypeException("A component that is required by the scheme is missing.");
                case SCHEME_MUST_START_WITH_LETTER:
                    throw newDatatypeException("Scheme component must start with a letter.");
                case UNREGISTERED_NONIETF_SCHEME_TREE:
                    throw newDatatypeException("Scheme component has a \u201C-\u201D (dash) character, but does not start with \u201Cx-\u201D, and the prefix is not known as the prefix of an alternative tree for URI schemes.");
                case CONTROL_CHARACTER:
                case ILLEGAL_CHARACTER:
                case UNDEFINED_UNICODE_CHARACTER:
                case UNICODE_WHITESPACE:
                    throw newDatatypeException(underbarStringToSentence(v.codeName())
                            + " in "
                            + toAsciiLowerCase(v.component())
                            + " component.");
                default:
                    throw newDatatypeException(v.codeName() + " in "
                            + toAsciiLowerCase(v.component()) + " component.");
            }
        } catch (IOException e) {
            throw newDatatypeException(e.getMessage());
        } catch (RhinoException e) {
            throw newDatatypeException(e.getMessage());
        }
        if (isAbsolute()) {
            if (iri != null && !iri.isAbsolute()) {
                throw newDatatypeException("Not an absolute IRI.");
            }
        }
        if (iri != null) {
            if ("".equals(iri.toString())) {
                    throw newDatatypeException("Must be non-empty.");
            }
            if (data) {
                try {
                    DataUri dataUri = new DataUri(iri);
View Full Code Here

    }
   
   
    private static void processIRI(String iriStr)
    {
        IRI iri = IRIFactory.iriImplementation().create(iriStr) ;
        System.out.println(iri) ;
        System.out.println("Relative: "+iri.isRelative()) ;

        Iterator<Violation> vIter = iri.violations(true) ;
        for ( ; vIter.hasNext() ; )
        {
            System.out.println("** "+vIter.next().getShortMessage()) ;
        }
        System.out.println(iriStr + " ==> "+iri) ;
View Full Code Here

        // Then add all the @Overrides (Eclipse quick fix) to remove warnings.
    }

    static void checkOne(String s)
    {
        IRI iri = IRIFactory.iriImplementation().create(s) ;
        System.out.println(">> "+iri) ;
        for ( Iterator<Violation> iter = iri.violations(true) ; iter.hasNext() ; )
        {
            Violation v = iter.next();
            System.out.println(v.getShortMessage()) ;
        }
        System.out.println("<< "+iri) ;
View Full Code Here

                    if ( fieldName.equals(HttpNames.paramGraph) )
                    {
                        graphName = value ;
                        if ( graphName != null && ! graphName.equals(HttpNames.valueDefault) )
                        {
                            IRI iri = IRIResolver.parseIRI(value) ;
                            if ( iri.hasViolation(false) )
                                errorBadRequest("Bad IRI: "+graphName) ;
                            if ( iri.getScheme() == null )
                                errorBadRequest("Bad IRI: no IRI scheme name: "+graphName) ;
                            if ( iri.getScheme().equalsIgnoreCase("http") || iri.getScheme().equalsIgnoreCase("https"))
                            {
                                // Redundant??
                                if ( iri.getRawHost() == null )
                                    errorBadRequest("Bad IRI: no host name: "+graphName) ;
                                if ( iri.getRawPath() == null || iri.getRawPath().length() == 0 )
                                    errorBadRequest("Bad IRI: no path: "+graphName) ;
                                if ( iri.getRawPath().charAt(0) != '/' )
                                    errorBadRequest("Bad IRI: Path does not start '/': "+graphName) ;
                            }
                            gn = Node.createURI(graphName) ;
                        }
                    }
View Full Code Here

    }
   
    @Test public void relDotSlash1() throws MalformedURLException
    {
       IRIFactory f = IRIFactory.iriImplementation() ;
       IRI iri = f.construct("http://a/b/c/dddd;pppp?qqqqq") ;
       IRI iri2 = iri.resolve("./") ;
       test(iri2, "http://a/b/c/") ;
    }
View Full Code Here

    }
   
    @Test public void relDotSlash2() throws MalformedURLException
    {
       IRIFactory f = IRIFactory.iriImplementation() ;
       IRI iri = f.construct("http://a/b/c/dddd;pppp?qqqqq") ;
       IRI iri2 = iri.resolve("./foo") ;
       test(iri2, "http://a/b/c/foo") ;
    }
View Full Code Here

       
        doIt(absolute);
       
        if (base!=null) {
            out.println("<Resolve>");
            IRI b = doIt(base);
            IRI r = doIt(relative);
            out.println("<Result>");
            IRI result = b.create(r);
            doIt(result);
            out.println("</Result>");
            IRI rAgain =  b.relativize(
                    result,
                  RelativizeFlags 
                    );
            if (r.equals(rAgain)) {
                out.println("<Relativize same='true'/>");
View Full Code Here

    }

    private IRI doIt(String iri) {
        if (iri==null)
            return null;
        IRI rslt =
            factory.create(iri);
//            empty.create(iri);
        out.println("<IRI iri='"+substituteStandardEntities(iri)+"'>");
        doIt(rslt);
        out.println("</IRI>");
View Full Code Here

TOP

Related Classes of com.hp.hpl.jena.iri.IRI

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.