01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
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: */
18: package org.apache.ivy.plugins.parser;
19:
20: import java.io.File;
21: import java.io.IOException;
22: import java.io.InputStream;
23: import java.net.URL;
24: import java.text.ParseException;
25:
26: import org.apache.ivy.core.module.descriptor.Artifact;
27: import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
28: import org.apache.ivy.core.module.id.ModuleRevisionId;
29: import org.apache.ivy.plugins.repository.Resource;
30:
31: public interface ModuleDescriptorParser {
32: public ModuleDescriptor parseDescriptor(ParserSettings ivySettings,
33: URL descriptorURL, boolean validate) throws ParseException,
34: IOException;
35:
36: public ModuleDescriptor parseDescriptor(ParserSettings ivySettings,
37: URL descriptorURL, Resource res, boolean validate)
38: throws ParseException, IOException;
39:
40: /**
41: * Convert a module descriptor to an ivy file. This method MUST close the given input stream
42: * when job is finished
43: *
44: * @param is
45: * input stream with opened on original module descriptor resource
46: */
47: public void toIvyFile(InputStream is, Resource res, File destFile,
48: ModuleDescriptor md) throws ParseException, IOException;
49:
50: public boolean accept(Resource res);
51:
52: /**
53: * Return the 'type' of module artifacts this parser is parsing
54: * @return the 'type' of module artifacts this parser is parsing
55: */
56: public String getType();
57:
58: /**
59: * Returns the module metadata artifact corresponding to the given module revision id that this
60: * parser parses
61: *
62: * @param res
63: * the resource for which the module artifact should be returned
64: * @param mrid
65: * the module revision id for which the module artifact should be returned
66: * @return the module artifact corresponding to the given mrid and resource
67: */
68: public Artifact getMetadataArtifact(ModuleRevisionId mrid,
69: Resource res);
70: }
|