KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > joseki > test > ClearModelProcessor


1 /*
2  * (c) Copyright 2003, 2004 Hewlett-Packard Development Company, LP
3  * [See end of file]
4  */

5  
6 package org.joseki.test;
7
8 import java.util.* ;
9 import org.joseki.server.*;
10 import org.joseki.server.processors.*;
11 import org.joseki.vocabulary.JosekiVocab;
12
13 import com.hp.hpl.jena.rdf.model.*;
14
15 /** This processor is only for testing. It is not a good idea to have
16  * on a live system.
17  *
18  * @author Andy Seaborne
19  * @version $Id: ClearModelProcessor.java,v 1.4 2004/04/30 14:13:13 andy_seaborne Exp $
20  */

21
22 public class ClearModelProcessor extends ZeroArgProcessor
23 {
24     public ClearModelProcessor()
25     {
26         super("clear", ProcessorCom.WriteOperation, ProcessorCom.MutatesModel) ;
27     }
28     
29     public String JavaDoc getInterfaceURI() { return JosekiVocab.getURI()+"OpClear" ; }
30
31     public Model execZeroArg(ModelSource src, Request request)
32         throws RDFException, ExecutionException
33     {
34         if ( super.mutatingOp && src.isImmutable() )
35             throw new ExecutionException(ExecutionError.rcImmutableModel, "Immutable Model") ;
36         Model target = ((ModelSourceJena)src).getModel() ;
37             
38         // target.remove(target) gets a java.util.ConcurrentModificationException (Jena1)
39
Set s = new HashSet() ;
40         for ( StmtIterator sIter = target.listStatements() ; sIter.hasNext() ; )
41             s.add(sIter.next()) ;
42         for ( Iterator iter = s.iterator() ; iter.hasNext() ; )
43             target.remove((Statement)iter.next()) ;
44         return super.emptyModel ;
45     }
46 }
47
48 /*
49  * (c) Copyright 2003, 2004 Hewlett-Packard Development Company, LP
50  * All rights reserved.
51  *
52  * Redistribution and use in source and binary forms, with or without
53  * modification, are permitted provided that the following conditions
54  * are met:
55  * 1. Redistributions of source code must retain the above copyright
56  * notice, this list of conditions and the following disclaimer.
57  * 2. Redistributions in binary form must reproduce the above copyright
58  * notice, this list of conditions and the following disclaimer in the
59  * documentation and/or other materials provided with the distribution.
60  * 3. The name of the author may not be used to endorse or promote products
61  * derived from this software without specific prior written permission.
62  *
63  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
64  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
65  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
66  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
67  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
68  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
69  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
70  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
71  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
72  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
73  */

74
Popular Tags