1 /*
2 * Copyright 2005-2008 The Kuali Foundation
3 *
4 *
5 * Licensed under the Educational Community License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.opensource.org/licenses/ecl2.php
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 package org.kuali.rice.kew.batch;
18
19 import java.io.File;
20 import java.io.FileInputStream;
21 import java.io.IOException;
22 import java.io.InputStream;
23
24 /**
25 * An XmlDoc implementation backed by a physical XML File
26 * @see org.kuali.rice.kew.batch.XmlDoc
27 * @see org.kuali.rice.kew.batch.BaseXmlDoc
28 * @see org.kuali.rice.kew.batch.FileXmlDocCollection
29 * @see org.kuali.rice.kew.batch.DirectoryXmlDocCollection
30 * @author Kuali Rice Team (rice.collab@kuali.org)
31 */
32 class FileXmlDoc extends BaseXmlDoc {
33 private File file;
34 private String name;
35 public FileXmlDoc(File file, XmlDocCollection collection) {
36 this(file, file.getName(), collection);
37 this.file = file;
38 }
39 public FileXmlDoc(File file, String name, XmlDocCollection collection) {
40 super(collection);
41 this.file = file;
42 this.name = name;
43 }
44 public String getName() {
45 return name;
46 }
47 public InputStream getStream() throws IOException {
48 return new FileInputStream(file);
49 }
50 public int hashCode() {
51 return file.hashCode();
52 }
53 public boolean equals(Object o) {
54 if (!(o instanceof FileXmlDoc)) return false;
55 return file.equals(((FileXmlDoc) o).file);
56 }
57 }