Statistics
| Revision:

root / trunk / extensions / extWCS / src / es / uji / lsi / wcs / XmlWcsParsing / DescribeCoverageResponse.java @ 1877

History | View | Annotate | Download (3.12 KB)

1
package es.uji.lsi.wcs.XmlWcsParsing;
2
/*
3
 * DescribeCoverage.java
4
 *
5
 * Created on 31 de diciembre de 2004, 15:03
6
 */
7
import java.util.*;
8
import java.io.*;
9

    
10

    
11
/**
12
 *
13
 * @author  jaume
14
 */
15
public class DescribeCoverageResponse {
16
    private String version;
17
    private String updateSequence;
18
    private ArrayList coverageOfferingList = new ArrayList();
19
    
20
    /** Creates a new instance of DescribeCoverage */
21
    public DescribeCoverageResponse(XMLNode node, Capabilities capabilities) {
22
        fillupDescribeCoverage(node, capabilities);
23
    }
24

    
25
    public DescribeCoverageResponse(File file, Capabilities capabilities){
26
        // for debugging purposes only
27
        try {
28
            XMLNode node = new XMLNode(file);
29
            fillupDescribeCoverage(node, capabilities);
30
        } catch (Exception e){
31
            System.out.println("Exception: " + e.getMessage());
32
        }
33
    }
34
    
35
    public void fillupDescribeCoverage(XMLNode node, Capabilities capabilities){
36
        try{
37
            checkDescribeCoverageDocument(node);
38
            for (int i=0; i<node.getNumSubNodes(); i++){
39
                XMLNode subnode = node.getSubNode(i);
40
                
41
                if (WCSToolkit.isWCSTab(subnode, "CoverageOffering")) coverageOfferingList.add(new CoverageOffering(subnode, capabilities));
42
            }        
43
        } catch (NotAnDescribeCoverageXmlDocumentException e){
44
            new Error("Unrecognized DescribeCapabilities format");
45
        }
46
    }
47
    
48
    public boolean checkDescribeCoverageDocument(XMLNode node) throws NotAnDescribeCoverageXmlDocumentException{
49
        if (WCSToolkit.isWCSTab(node, "CoverageDescription")){
50
            version = node.getAttribute("version");
51
            updateSequence = node.getAttribute("updateSequence");
52
            return true;
53
        } else throw new NotAnDescribeCoverageXmlDocumentException();
54
    }
55
    
56
    public String getVersion(){
57
        return version;
58
    }
59
    
60
    public String getUpdateSequence(){
61
        return updateSequence;
62
    }
63
    
64
    public ArrayList getCoverageOfferingList(){
65
        return coverageOfferingList;
66
    }
67
    
68
    public CoverageOffering getCoverageOffering(String coverage_name){
69
        // returns the coverage named coverage_name from the list
70
        Iterator it = coverageOfferingList.iterator();
71
        while (it.hasNext()){
72
            CoverageOffering co = (CoverageOffering) it.next();
73
            if (co.getCoverageOfferingBrief().getName().equals(coverage_name)){
74
                return co;
75
            }
76
        }
77
        return null;
78
    }
79
    
80
    public String toString(){
81
        Iterator it = coverageOfferingList.iterator();
82
        String s = "";
83
        while (it.hasNext()){
84
            s += "\nNext item: "+it.next();
85
        }
86
        return "\nDESCRIBE COVERAGE"+
87
               "\nVersion: "+version+
88
               "\nUpdate Sequence: "+updateSequence+
89
               "\nCoverage Offering list: "+s;
90
    }
91
    
92
}
93

    
94
class NotAnDescribeCoverageXmlDocumentException extends Exception{
95
    public NotAnDescribeCoverageXmlDocumentException(){
96
        super();
97
    }
98
    
99
    public NotAnDescribeCoverageXmlDocumentException(String s){
100
        super(s);
101
    }
102
}