Package org.apache.jena.security.contract.model

Source Code of org.apache.jena.security.contract.model.SecTestPackage$PlainModelFactory

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jena.security.contract.model;

import com.hp.hpl.jena.graph.Graph;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.test.AbstractTestPackage;
import com.hp.hpl.jena.rdf.model.test.helpers.TestingModelFactory;
import com.hp.hpl.jena.shared.PrefixMapping;
import com.hp.hpl.jena.util.FileUtils;


import java.lang.reflect.InvocationTargetException;

import junit.framework.TestSuite;

import org.apache.jena.atlas.web.TypedInputStream;
import org.apache.jena.riot.stream.Locator;
import org.apache.jena.riot.stream.StreamManager;
import org.apache.jena.riot.stream.LocatorZip;
import org.apache.jena.security.MockSecurityEvaluator;
import org.apache.jena.security.SecurityEvaluator;

import org.junit.runner.RunWith;

/**
* Test package to test Model implementation.
*/
//@RunWith(ModelTestSuite.class)
public class SecTestPackage extends AbstractTestPackage
{
  static public TestSuite suite() throws SecurityException, IllegalArgumentException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException
  {
    return new SecTestPackage();
  }
 
  public SecTestPackage() throws SecurityException, IllegalArgumentException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException
  {
    super("SecuredModel", new PlainModelFactory() );
    // register a jar reader here
    StreamManager sm =StreamManager.get();
    sm.addLocator( new LocatorJarURL()  );
  }

  /* package private */static class PlainModelFactory implements TestingModelFactory
  {
    private final SecurityEvaluator eval;
   
    public PlainModelFactory()
    {
      eval = new MockSecurityEvaluator(true, true, true, true, true, true);
    }
   
    @Override
    public Model createModel()
    {
      // Graph graph = Factory.createDefaultGraph( style );
      final Model model = ModelFactory.createDefaultModel();
      return org.apache.jena.security.Factory.getInstance(eval, "testModel",
          model);
    }
   
    @Override
    public PrefixMapping getPrefixMapping()
    {
      return createModel().getGraph().getPrefixMapping();
    }
   
    @Override
    public Model createModel( Graph base )
    {
      return ModelFactory.createModelForGraph(base);
    }
  }
 
  public static class LocatorJarURL implements Locator {

    @Override
    public TypedInputStream open(String uri) {
       String uriSchemeName = FileUtils.getScheme(uri) ;
       if ( ! "jar".equalsIgnoreCase(uriSchemeName))
       {
         return null;
       }
      
       String[] parts = uri.substring( 4 ).split("!");
       if (parts.length != 2)
       {
         return null;
       }
       if (parts[0].toLowerCase().startsWith("file:"))
       {
         parts[0] = parts[0].substring( 5 );
       }
       if (parts[1].startsWith( "/"))
       {
         parts[1] = parts[1].substring(1);
       }
       LocatorZip zl = new LocatorZip( parts[0] );
       return zl.open(parts[1] );
    }

    @Override
    public String getName() {
      return "JarURLLocator";
    }
   
  }
}
TOP

Related Classes of org.apache.jena.security.contract.model.SecTestPackage$PlainModelFactory

TOP
Copyright © 2018 www.massapi.com. 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.