KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > derby > impl > sql > execute > ReplaceJarConstantAction


1 /*
2
3    Derby - Class org.apache.derby.impl.sql.execute.ReplaceJarConstantAction
4
5    Licensed to the Apache Software Foundation (ASF) under one or more
6    contributor license agreements. See the NOTICE file distributed with
7    this work for additional information regarding copyright ownership.
8    The ASF licenses this file to you under the Apache License, Version 2.0
9    (the "License"); you may not use this file except in compliance with
10    the License. You may obtain a copy of the License at
11
12       http://www.apache.org/licenses/LICENSE-2.0
13
14    Unless required by applicable law or agreed to in writing, software
15    distributed under the License is distributed on an "AS IS" BASIS,
16    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17    See the License for the specific language governing permissions and
18    limitations under the License.
19
20  */

21
22 package org.apache.derby.impl.sql.execute;
23
24 import org.apache.derby.iapi.services.sanity.SanityManager;
25 import org.apache.derby.iapi.error.StandardException;
26 import org.apache.derby.iapi.sql.execute.ConstantAction;
27
28 import org.apache.derby.iapi.sql.Activation;
29
30 import org.apache.derby.catalog.UUID;
31 /**
32  * Constant action to Add an external Jar file to a database.
33  *
34  */

35 class ReplaceJarConstantAction extends DDLConstantAction
36 {
37
38     private final UUID id;
39     private final String JavaDoc schemaName;
40     private final String JavaDoc sqlName;
41     private final String JavaDoc externalPath;
42     //////////////////////////////////////////////////////////////
43
//
44
// CONSTRUCTORS
45
//
46
//////////////////////////////////////////////////////////////
47

48     /**
49      * Make the ConstantAction to replace a jar file in a database.
50      *
51      * @param id The id for the jar file
52      * @param schemaName The SchemaName for the jar file.
53      * @param sqlName The sqlName for the jar file.
54      * @param externalPath The name of the file that holds the jar.
55      */

56     ReplaceJarConstantAction(UUID id,
57                                     String JavaDoc schemaName,
58                                     String JavaDoc sqlName,
59                                     String JavaDoc externalPath)
60     {
61         this.id = id;
62         this.schemaName = schemaName;
63         this.sqlName = sqlName;
64         this.externalPath = externalPath;
65     }
66
67     //////////////////////////////////////////////////////////////
68
//
69
// OBJECT SHADOWS
70
//
71
//////////////////////////////////////////////////////////////
72

73     public String JavaDoc toString()
74     {
75         // Do not put this under SanityManager.DEBUG - it is needed for
76
// error reporting.
77
return "REPLACE JAR FILE " + schemaName + "." + sqlName;
78     }
79
80     //////////////////////////////////////////////////////////////
81
//
82
// CONSTANT ACTION METHODS
83
//
84
//////////////////////////////////////////////////////////////
85
/**
86      * @see ConstantAction#executeConstantAction
87      * @exception StandardException Thrown on failure
88      */

89     public void executeConstantAction( Activation activation )
90                         throws StandardException
91     {
92         JarUtil.replace(id,schemaName,
93                                        sqlName,
94                                        externalPath,
95                                        purgeOnCommit());
96     }
97
98     //
99
// Replication can over-ride this to defer purging dropped jar
100
// files that remain in the stage.
101
protected boolean purgeOnCommit() { return true; }
102
103 }
104
Popular Tags