001    /*
002     * Copyright 2010 The Apache Software Foundation.
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     * 
008     *      http://www.apache.org/licenses/LICENSE-2.0
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.vafer.jdeb.descriptors;
017    
018    import java.io.IOException;
019    import java.io.InputStream;
020    import java.text.ParseException;
021    
022    import org.vafer.jdeb.utils.VariableResolver;
023    
024    /**
025     * Reflecting the package control file
026     * 
027     * @author Torsten Curdt <tcurdt@vafer.org>
028     */
029    public final class PackageDescriptor extends AbstractDescriptor {
030    
031        private final static String[] keys = {
032            "Package",
033            "Source",
034            "Version",
035            "Section",
036            "Priority",
037            "Architecture",
038            "Essential",
039            "Depends",
040            "Pre-Depends",
041            "Recommends",
042            "Suggests",
043            "Breaks",
044            "Enhances",
045            "Conflicts",
046            "Provides",
047            "Replaces",
048            "Installed-Size",
049            "Maintainer",
050            "Description",
051            "Homepage",
052        };
053    
054        private final static String[] mandatoryKeys = {
055            "Package",
056            "Version",
057            "Section",
058            "Priority",
059            "Architecture",
060            "Maintainer",
061            "Description"
062        };
063        
064        public PackageDescriptor() {
065            this(null);
066        }
067    
068        public PackageDescriptor( final VariableResolver pResolver ) {
069            super(pResolver);
070        }
071    
072        public PackageDescriptor( final InputStream pInput, final VariableResolver pResolver )  throws IOException, ParseException {    
073            this(pResolver);
074            parse(pInput);
075        }
076    
077        public String[] getMandatoryKeys() {
078            return mandatoryKeys;
079        }
080    
081        public String toString() {
082            return toString(keys);
083        }
084    
085    }