Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.installer / org.gvsig.installer.lib / org.gvsig.installer.lib.impl / src / main / java / org / gvsig / installer / lib / impl / DefaultPackageInfo.java @ 40936

History | View | Annotate | Download (23.3 KB)

1
/**
2
 * gvSIG. Desktop Geographic Information System.
3
 *
4
 * Copyright (C) 2007-2013 gvSIG Association.
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 3
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 * For any additional information, do not hesitate to contact us
22
 * at info AT gvsig.com, or visit our website www.gvsig.com.
23
 */
24
/*
25
 * AUTHORS (In addition to CIT):
26
 * 2010 {Prodevelop}   {Task}
27
 */
28

    
29
package org.gvsig.installer.lib.impl;
30

    
31
import java.io.File;
32
import java.io.IOException;
33
import java.net.MalformedURLException;
34
import java.net.URL;
35
import java.security.InvalidParameterException;
36
import java.util.ArrayList;
37
import java.util.Iterator;
38
import java.util.List;
39

    
40
import org.gvsig.installer.lib.api.Dependencies;
41
import org.gvsig.installer.lib.api.InstallerLocator;
42
import org.gvsig.installer.lib.api.InstallerManager;
43
import org.gvsig.installer.lib.api.InstallerManager.ARCH;
44
import org.gvsig.installer.lib.api.InstallerManager.JVM;
45
import org.gvsig.installer.lib.api.InstallerManager.OS;
46
import org.gvsig.installer.lib.api.InstallerManager.STATE;
47
import org.gvsig.installer.lib.api.PackageInfo;
48
import org.gvsig.installer.lib.api.Version;
49
import org.gvsig.installer.lib.api.execution.InstallPackageServiceException;
50
import org.gvsig.installer.lib.impl.info.InstallerInfoTags;
51
import org.gvsig.installer.lib.impl.utils.DeleteFile;
52
import org.gvsig.installer.lib.impl.utils.Download;
53
import org.gvsig.installer.lib.impl.utils.SignUtil;
54
import org.gvsig.tools.packageutils.StringWithAlias;
55
import org.gvsig.tools.packageutils.impl.DefaultStringWithAlias;
56
import org.gvsig.tools.task.SimpleTaskStatus;
57
import org.slf4j.Logger;
58
import org.slf4j.LoggerFactory;
59

    
60
/**
61
 * @author <a href="mailto:jpiera@gvsig.org">Jorge Piera Llodr&aacute;</a>
62
 */
63
public class DefaultPackageInfo implements PackageInfo {
64

    
65
    private static final Logger LOG = LoggerFactory
66
        .getLogger(DefaultPackageInfo.class);
67

    
68
    private StringWithAlias code = null;
69
    private String name = null;
70
    private String description = null;
71
    private Version version = null;
72
    private boolean official;
73
    private List<File> auxFiles = null;
74
    private String antScript = null;
75
    private String type = "unknow";
76
    private Boolean signed = false;
77
    private Boolean broken = false;
78

    
79
    private String state = STATE.DEVEL;
80
    private String operatingSystem = OS.ALL;
81
    private String architecture = ARCH.ALL;
82
    private String javaVM = JVM.J1_5;
83

    
84
    private String owner = "";
85
    private URL ownerURL = null;
86
    private URL sources = null;
87
    private String gvSIGVersion = "";
88

    
89
    private String defaultDownloadURL = null;
90

    
91
    private String modelVersion = "1.0.1";
92
    private Dependencies dependencies = null;
93
    private List<String> categories = null;
94

    
95
    private URL webURL = null;
96

    
97
    public DefaultPackageInfo() {
98
        super();
99
        auxFiles = new ArrayList<File>();
100
        this.version = new DefaultVersion().parse("0.0.1");
101
        this.dependencies = new DefaultDependencies();
102
        this.categories = new ArrayList<String>();
103
    }
104

    
105
    public String getCode() {
106
            if( code == null ) {
107
                    return null;
108
            }
109
        return code.toString();
110
    }
111

    
112
    public StringWithAlias getAllCodes() {
113
            return this.code;
114
    }
115
    
116
    private String getAliasAsString() {
117
            if( this.code == null ) {
118
                    return "";
119
            }
120
            StringBuffer s = new StringBuffer();
121
            Iterator alias = this.code.getAlias().iterator();
122
            while( alias.hasNext() ) {
123
                    String ss = (String) alias.next();
124
                    s.append(ss);
125
                    if( alias.hasNext() ) {
126
                            s.append(", ");
127
                    }
128
            }
129
            return s.toString();
130
    }
131
    
132
    public boolean hasThisCode(String code) {
133
            if( this.code == null ) {
134
                    if( code == null ) {
135
                            return true;
136
                    }
137
                    return false;
138
            }
139
            return this.code.equalsIgnoreCase(code);
140
    }
141
    
142
    public boolean hasThisCode(StringWithAlias code) {
143
            if( this.code == null ) {
144
                    if( code == null ) {
145
                            return true;
146
                    }
147
                    return false;
148
            }
149
            return this.code.equalsIgnoreCase(code);
150
    }
151
    
152

    
153
    public String getID() {
154
        String id =
155
            this.getCode() + "#" + this.getVersion() 
156
                + "#" + this.getOperatingSystem() + "#"
157
                + this.getArchitecture();
158
        return id;
159
    }
160

    
161
    public String getName() {
162
        return name;
163
    }
164

    
165
    public String getDescription() {
166
        return description;
167
    }
168

    
169
    public Version getVersion() {
170
        return version;
171
    }
172

    
173
    public int getBuild() {
174
        return this.version.getBuild();
175
    }
176

    
177
    public String getState() {
178
        return state;
179
    }
180

    
181
    public boolean isOfficial() {
182
        return official;
183
    }
184

    
185
    public void setCode(String code) {
186
            if( code == null ) {
187
                    this.code = null;
188
            } else {
189
                    this.code = new DefaultStringWithAlias(code);
190
            }
191
    }
192

    
193
    public void setName(String name) {
194
        this.name = name;
195
    }
196

    
197
    public void setDescription(String description) {
198
        this.description = description;
199
    }
200

    
201
    public void setVersion(String version) {
202
        if (version == null) {
203
            return;
204
        }
205
        int prev = this.version.getBuild();
206
        this.version.parse(version);
207
        int curr = this.version.getBuild();
208
        if (prev != 0 && curr == 0) {
209
            this.version.setBuild(prev);
210
        }
211
    }
212

    
213
    public void setVersion(Version version) {
214
        try {
215
            int prev = this.version.getBuild();
216
            this.version = (Version) version.clone();
217
            int curr = this.version.getBuild();
218
            if (prev != 0 && curr == 0) {
219
                this.version.setBuild(prev);
220
            }
221
        } catch (CloneNotSupportedException e) {
222
            throw new RuntimeException(e);
223
        }
224
    }
225

    
226
    public void setBuild(int build) {
227
        this.version.setBuild(build);
228
    }
229

    
230
    public void setState(String state) {
231
        this.state = state;
232
    }
233

    
234
    public void setOfficial(boolean official) {
235
        this.official = official;
236
    }
237

    
238
    public String getOperatingSystem() {
239
        return operatingSystem;
240
    }
241

    
242
    public void setOperatingSystem(String operatingSystem) {
243
        this.operatingSystem = operatingSystem;
244
    }
245

    
246
    public String getArchitecture() {
247
        return architecture;
248
    }
249

    
250
    public void setArchitecture(String architecture) {
251
        this.architecture = architecture;
252
    }
253

    
254
    public String getJavaVM() {
255
        return javaVM;
256
    }
257

    
258
    public void setJavaVM(String javaVM) {
259
        this.javaVM = javaVM;
260
    }
261

    
262
    public String getAntScript() {
263
        return antScript;
264
    }
265

    
266
    public void setAntScript(String antScript) {
267
        this.antScript = antScript;
268
    }
269

    
270
    public String getType() {
271
        return type;
272
    }
273

    
274
    public void setType(String type) {
275
        this.type = type;
276
    }
277

    
278
    public String getGvSIGVersion() {
279
        return gvSIGVersion;
280
    }
281

    
282
    public void setGvSIGVersion(String gvSIGVersion) {
283
        this.gvSIGVersion = gvSIGVersion;
284
    }
285

    
286
    private URL internalGetDownloadURL() {
287
        if (defaultDownloadURL != null) {
288
            try {
289
                return new URL(defaultDownloadURL);
290
            } catch (MalformedURLException e) {
291
                throw new RuntimeException(
292
                    "Error converting to URL the package download url: "
293
                        + defaultDownloadURL, e);
294
            }
295
        }
296
        return null;
297
    }
298

    
299
    public URL getDownloadURL() {
300
        InstallerManager manager = InstallerLocator.getInstallerManager();
301
        if (manager == null) {
302
            return null;
303
        }
304
        return getDownloadURL(manager.getDownloadBaseURL());
305
    }
306

    
307
    public URL getDownloadURL(URL baseURL) {
308
        try {
309
            return internalGetDownloadURL();
310
        } catch (RuntimeException e) {
311
            // The download URL in the package info is not a valid URL,
312
            // so it might be a relative one.
313
            // Try to create and absolute one.
314
        }
315

    
316
        // Create a full URL with the base one and the download one.
317
        try {
318
            return new URL(baseURL, this.defaultDownloadURL);
319
        } catch (MalformedURLException e) {
320
            throw new RuntimeException(
321
                "Error converting to URL the package download url, "
322
                    + "with the base URL: " + baseURL
323
                    + ", the package download URL: " + this.defaultDownloadURL,
324
                e);
325
        }
326
    }
327

    
328
    public String getDownloadURLAsString() {
329
        return this.defaultDownloadURL;
330
    }
331

    
332
    public void setDownloadURL(URL defaultDownloadURL) {
333
        this.defaultDownloadURL = defaultDownloadURL.toString();
334
    }
335

    
336
    public void setDownloadURL(String defaultDownloadURL) {
337
        this.defaultDownloadURL = defaultDownloadURL;
338
    }
339

    
340
    public String getModelVersion() {
341
        return modelVersion;
342
    }
343

    
344
    public void setModelVersion(String modelVersion) {
345
        this.modelVersion = modelVersion;
346
    }
347

    
348
    public String getOwner() {
349
        return owner;
350
    }
351

    
352
    public void setOwner(String owner) {
353
        this.owner = owner;
354
    }
355

    
356
    public URL getOwnerURL() {
357
        return ownerURL;
358
    }
359

    
360
    public void setOwnerURL(URL sources) {
361
        this.ownerURL = sources;
362
    }
363

    
364
    public URL getSourcesURL() {
365
        return sources;
366
    }
367

    
368
    public void setSourcesURL(URL sources) {
369
        this.sources = sources;
370
    }
371

    
372
    @Override
373
    public String toString() {
374
        StringBuffer buffer = new StringBuffer(super.toString()).append(" (");
375

    
376
        append(buffer, InstallerInfoTags.CODE, getCode());
377
        append(buffer, InstallerInfoTags.NAME, getName());
378
        append(buffer, InstallerInfoTags.DESCRIPTION, getDescription());
379
        append(buffer, InstallerInfoTags.GVSIG_VERSION, getGvSIGVersion());
380
        append(buffer, InstallerInfoTags.VERSION, getVersion());
381
        append(buffer, InstallerInfoTags.BUILD, getBuild());
382
        append(buffer, InstallerInfoTags.OS, getOperatingSystem());
383
        append(buffer, InstallerInfoTags.ARCHITECTURE, getArchitecture());
384
        append(buffer, InstallerInfoTags.JVM, getJavaVM());
385
        append(buffer, InstallerInfoTags.DOWNLOAD_URL, getDownloadURL());
386
        append(buffer, InstallerInfoTags.STATE, getState());
387
        append(buffer, InstallerInfoTags.OFFICIAL, isOfficial());
388
        append(buffer, InstallerInfoTags.TYPE, getType());
389
        append(buffer, InstallerInfoTags.MODEL_VERSION, getModelVersion());
390
        append(buffer, InstallerInfoTags.OWNER, getOwner());
391
        append(buffer, InstallerInfoTags.OWNER_URL, getOwnerURL());
392
        append(buffer, InstallerInfoTags.SOURCES_URL, getSourcesURL());
393
        append(buffer, InstallerInfoTags.DEPENDENCIES, getDependencies());
394
        append(buffer, InstallerInfoTags.WEB_URL, getWebURL());
395
        append(buffer, InstallerInfoTags.CATEGORIES, getCategories());
396
        append(buffer, InstallerInfoTags.CODEALIAS, getAliasAsString());
397

    
398
        return buffer.append(')').toString();
399
    }
400

    
401
    public String toStringCompact() {
402
        // type code version state os arch jvm dep
403
        return String
404
            .format(
405
                "%1$-8.8s %2$-40s %3$-20.20s %4$-5.5s %5$-5.5s %6$-6.6s %7$-5.5s %8$s %8$s",
406
                this.type, this.code, this.version, this.state,
407
                this.operatingSystem, this.architecture, this.javaVM,
408
                this.dependencies, this.getAliasAsString());
409
    }
410

    
411
    private DefaultPackageInfo append(StringBuffer buffer, String key,
412
        Object value) {
413
        buffer.append("\n\t").append(key).append(": ")
414
            .append(value == null ? "" : value);
415
        return this;
416
    }
417

    
418
    @Override
419
    public Object clone() throws CloneNotSupportedException {
420
        DefaultPackageInfo clone = (DefaultPackageInfo) super.clone();
421
        clone.auxFiles = new ArrayList<File>(auxFiles);
422
        return clone;
423
    }
424

    
425
    public File downloadFile() throws InstallPackageServiceException {
426
        return this.downloadFile(null);
427
    }
428

    
429
    public class FileDownloadException extends InstallPackageServiceException {
430

    
431
        private static final long serialVersionUID = 8640183295766490512L;
432

    
433
        private static final String message = "File '%(url)s' download error";
434

    
435
        private static final String KEY = "_File_XurlX_download_error";
436

    
437
        public FileDownloadException(URL url, IOException e) {
438
            super(message, e, KEY, serialVersionUID);
439
            setValue("url", url.toString());
440
        }
441

    
442
    }
443

    
444
    public File downloadFile(SimpleTaskStatus taskStatus)
445
        throws InstallPackageServiceException {
446
            File file = null;
447
            try {
448
                Download download = new Download(taskStatus);
449
        
450
                // First try to download from the index base URL this package info has
451
                // been downloaded from, looking first as if the index is located in the
452
                // main version folder, and if not in the build folder. 
453
                // If also not there, download from the URL available in the 
454
                // downloadURL property.
455
                // Example baseURL: http://downloads.gvsig.org/download/gvsig-desktop/dists/2.0.0/
456
                        String versionRelativePath = "../../pool/" + getCode() + "/"
457
                                        + getPackageFileName();
458
                        file = downloadFromRelativeURL(download, versionRelativePath);
459
        
460
                        if (file == null) {
461
                        // Example baseURL: http://downloads.gvsig.org/download/gvsig-desktop/dists/2.0.0/builds/2048/
462
                                String buildRelativePath = "../../../../pool/" + getCode() + "/"
463
                                                + getPackageFileName();
464
                                file = downloadFromRelativeURL(download, buildRelativePath);
465
                        }
466
        
467
                        if (file == null) {
468
                                file = downloadFromPackageInfoURL(download);
469
                        }
470
                        
471
            } catch(InstallPackageServiceException ex) {
472
                    LOG.info("Can't download package '"+this.getCode()+"' from server '"+getBaseURL().toString()+"'.",ex);
473
                    throw ex;
474
            } catch(RuntimeException ex) {
475
                    LOG.info("Can't download package '"+this.getCode()+"' from server '"+getBaseURL().toString()+"'.",ex);
476
                    throw ex;
477
            }
478
            if( file == null ) {
479
                    LOG.info("Can't download package '"+this.getCode()+"' from server '"+getBaseURL().toString()+"'.");
480
            }
481
                return file;
482
        }
483

    
484
    private URL getBaseURL() {
485
                InstallerManager manager = InstallerLocator.getInstallerManager();
486
                URL baseURL = manager.getDownloadBaseURL();
487
                return baseURL;
488
    }
489
    
490
        private File downloadFromRelativeURL(Download download,
491
                        String buildRelativePath) {
492
                InstallerManager manager = InstallerLocator.getInstallerManager();
493
                URL baseURL = manager.getDownloadBaseURL();
494
                try {
495
                        URL downloadURL = new URL(baseURL, buildRelativePath);
496
                        return download.downloadFile(downloadURL, null);
497
                } catch (IOException e) {
498
                        LOG.debug("Package " + getName()
499
                                        + " not found relative to the build index URL: " + baseURL
500
                                        + ", in the URL: " + buildRelativePath, e);
501
                }
502
                return null;
503
        }
504

    
505
        private File downloadFromPackageInfoURL(Download download) throws FileDownloadException {
506
                try {
507
                        return download.downloadFile(this.getDownloadURL(), null);
508
                } catch (IOException ex3) {
509
                        throw new FileDownloadException(this.getDownloadURL(), ex3);
510
                }
511
        }
512

    
513
    private String getPackageFileName() {
514
        Object[] values =
515
            new Object[] { "gvSIG-desktop", getGvSIGVersion(), getCode(),
516
                getVersion(), getState(), getOperatingSystem(),
517
                getArchitecture(), getJavaVM() };
518
        StringBuffer buffer = new StringBuffer();
519
        for (int i = 0; i < values.length - 1; i++) {
520
            buffer.append(values[i]).append('-');
521
        }
522
        buffer.append(values[values.length - 1]).append(".gvspkg");
523
        return buffer.toString();
524
    }
525

    
526
    public void addFileToCopy(File file) {
527
        auxFiles.add(file);
528
    }
529

    
530
    public File getFileToCopy(int i) {
531
        return auxFiles.get(i);
532
    }
533

    
534
    public void removeFileToCopy(File file) {
535
        auxFiles.remove(file);
536
    }
537

    
538
    public void clearFilesToCopy() {
539
        auxFiles.clear();
540
    }
541

    
542
    public List<File> getFilesToCopy() {
543
        return auxFiles;
544
    }
545

    
546
    public boolean removeInstallFolder(File folder) {
547
        DeleteFile delete = new DeleteFile();
548
        boolean success = delete.delete(folder);
549
        setAntScript(null);
550
        clearFilesToCopy();
551
        return success;
552
    }
553

    
554
    public boolean removeFilesFolder(File folder) {
555
        DeleteFile delete = new DeleteFile();
556
        return delete.delete(folder);
557
    }
558

    
559
    public boolean matchID(String string) {
560
        String id = this.getID();
561
        String[] stringParts = string.split("#");
562

    
563
        switch (stringParts.length) {
564
        case 1:
565
            if (stringParts[0].equals(this.getCode())) {
566
                return true;
567
            } else {
568
                return false;
569
            }
570
        case 2:
571
            if (!stringParts[0].equals(this.getCode())) {
572
                return false;
573
            }
574
            Version version = new DefaultVersion();
575
            try {
576
                version.parse(stringParts[1]);
577
            } catch (InvalidParameterException ex) {
578
                return false;
579
            }
580

    
581
            if (version.equals(this.getVersion())) {
582
                return true;
583
            }
584
            return false;
585
        default:
586
            return string.equals(id);
587

    
588
        }
589

    
590
    }
591

    
592
    public Dependencies getDependencies() {
593
        return this.dependencies;
594
    }
595

    
596
    public void setDependencies(Dependencies dependencies) {
597
        this.dependencies = dependencies;
598
    }
599

    
600
    public void setDependencies(String dependencies) {
601
        if (dependencies == null) {
602
            this.dependencies = null;
603
        } else {
604
            this.dependencies = new DefaultDependencies().parse(dependencies);
605
        }
606
    }
607

    
608
    @Override
609
    public boolean equals(Object obj) {
610
        PackageInfo other;
611
        try {
612
            other = (PackageInfo) obj;
613
        } catch (Exception e) {
614
            return false;
615
        }
616
        if (!code.equalsIgnoreCase(other.getCode())) {
617
            return false;
618
        }
619
        if (!version.check("=", other.getVersion())) {
620
            return false;
621
        }
622
        if (!operatingSystem.equalsIgnoreCase(other.getOperatingSystem())) {
623
            return false;
624
        }
625
        if (!gvSIGVersion.equalsIgnoreCase(other.getGvSIGVersion())) {
626
            return false;
627
        }
628
        if (!state.equalsIgnoreCase(other.getState())) {
629
            return false;
630
        }
631
        if (!architecture.equalsIgnoreCase(other.getArchitecture())) {
632
            return false;
633
        }
634
        if (!javaVM.equalsIgnoreCase(other.getJavaVM())) {
635
            return false;
636
        }
637
        if (!type.equalsIgnoreCase(other.getType())) {
638
            return false;
639
        }
640
        if (official != other.isOfficial()) {
641
            return false;
642
        }
643
        return true;
644
    }
645

    
646
    public URL getWebURL() {
647
        return webURL;
648
    }
649

    
650
    public void setWebURL(URL webURL) {
651
        this.webURL = webURL;
652
    }
653

    
654
    public List<String> getCategories() {
655
        return this.categories;
656
    }
657

    
658
    public void setCategories(List categoriesList) {
659
        for (int i = 0; i < categoriesList.size(); i++) {
660
            if (!this.categories.contains(categoriesList.get(i))) {
661
                this.categories.add((String) categoriesList.get(i));
662
            }
663
        }
664
    }
665

    
666
    public String getCategoriesAsString() {
667
        String categoriesString = "";
668
        for (int i = 0; i < this.categories.size(); i++) {
669
            if (i + 1 < this.categories.size()) {
670
                categoriesString += this.categories.get(i) + ", ";
671
            } else {
672
                categoriesString += this.categories.get(i);
673
            }
674
        }
675
        return categoriesString;
676
    }
677

    
678
    public void addCategoriesAsString(String categoriesString) {
679
        if (categoriesString == null) {
680
            return;
681
        }
682
        categoriesString.trim();
683
        String[] cadena = categoriesString.split(",");
684

    
685
        for (int i = 0; i < cadena.length; i++) {
686
            String trimCadena = cadena[i].trim();
687
            if ((!this.categories.contains(trimCadena)) && (trimCadena != "")) {
688
                this.categories.add(trimCadena);
689
            }
690
        }
691

    
692
    }
693

    
694
    public void checkSignature(byte[] pkgdata) {
695
        this.signed = false;
696
        SignUtil signutil = null;
697
        List<byte[]> keys =
698
            InstallerLocator.getInstallerManager().getPublicKeys();
699
        if (keys.size() < 1) {
700
            // No hay claves publicas, asi que no comprobamos ninguna firma
701
            // y decirmos a todos que no estan firmados.
702
            this.signed = false;
703
            return;
704
        }
705
        for (byte[] rawkey : keys) {
706
            signutil = new SignUtil(rawkey);
707
            if (signutil.canVerify()) {
708
                int status = signutil.verify(pkgdata);
709
                switch (status) {
710
                case SignUtil.SIGN_OK:
711
                    // El paquete tiene una firma correcta,lo marcamos
712
                    // como firmado y salimos.
713
                    this.signed = true;
714
                    return;
715
                case SignUtil.NOT_SIGNED:
716
                    // El paquete no va firmado, lo marcamos como no
717
                    // firmado y salimos.
718
                    this.signed = false;
719
                    return;
720
                case SignUtil.SIGN_FAIL:
721
                default:
722
                    // La firma del paquete no es correcta para esta clave,
723
                    // lo intentamos con el resto de claves.
724
                    break;
725
                }
726
            }
727
        }
728
        // Si habiendo claves publicas la comprobacion de la firma con todas
729
        // ellas
730
        // falla marcamos el paquete como roto.
731
        this.broken = true;
732
    }
733

    
734
    public boolean isBroken() {
735
        if (this.broken) {
736
            return true;
737
        }
738
        // if( this.isOfficial() && !this.isSigned() ) {
739
        // return true;
740
        // }
741
        return false;
742
    }
743

    
744
    public boolean isSigned() {
745
        return signed;
746
    }
747

    
748
    /* (non-Javadoc)
749
     * @see org.gvsig.installer.lib.api.PackageInfo#getApplicationVersion()
750
     */
751
    public Version getApplicationVersion() {
752
        // TODO Auto-generated method stub
753
        return null;
754
    }
755

    
756
    /* (non-Javadoc)
757
     * @see org.gvsig.installer.lib.api.PackageInfo#setApplicationVersion(org.gvsig.installer.lib.api.Version)
758
     */
759
    public void setApplicationVersion(Version version) {
760
        // TODO Auto-generated method stub
761
        
762
    }
763

    
764
    /* (non-Javadoc)
765
     * @see org.gvsig.installer.lib.api.PackageInfo#setValue(java.lang.String, java.lang.Object)
766
     */
767
    public void setValue(String name, Object value) {
768
        // TODO Auto-generated method stub
769
        
770
    }
771

    
772
    /* (non-Javadoc)
773
     * @see org.gvsig.installer.lib.api.PackageInfo#getValue(java.lang.String)
774
     */
775
    public Object getValue(String name) {
776
        // TODO Auto-generated method stub
777
        return null;
778
    }
779

    
780
    /* (non-Javadoc)
781
     * @see org.gvsig.installer.lib.api.PackageInfo#getPreferedPackageFileName()
782
     */
783
    public String getPreferedPackageFileName() {
784
        // TODO Auto-generated method stub
785
        return null;
786
    }
787

    
788
}