Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: f79523c4e3ea22be5a9407ba57a66fe6eb85ded1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/*******************************************************************************
 * Copyright (c) 2007 Innoopract Informationssysteme GmbH
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Innoopract - initial API and implementation
 *******************************************************************************/
package org.eclipse.epp.packaging.core.configuration;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.update.core.VersionedIdentifier;

/**
 * A configurable IPackagerConfiguration. All data is handed in as String, then
 * converted to the proper objects.
 */
public class PackagerConfiguration implements IModifiablePackagerConfiguration {

  private static final String ECLIPSE_PLATTFORM = "eclipse-platform-"; //$NON-NLS-1$
  
  private final List<URL> updateSites = new ArrayList<URL>();
  private final List<VersionedIdentifier> requiredFeatures = new ArrayList<VersionedIdentifier>();
  private final List<Platform> targetPlatforms = new ArrayList<Platform>();
  private File packagerConfigurationFolder;
  private File baseFolder;
  private File extensionSite;
  private String rcpVersion;
  private File rootFolder;
  private File configIni;
  private String productName;
  private String eclipseProductId;
  private String initialPerspectiveId;
  private String installerConfigurationFolder;

  public PackagerConfiguration() {
    this.baseFolder = org.eclipse.core.runtime.Platform.getLocation().toFile();
  }

  public URL[] getUpdateSites() {
    return this.updateSites.toArray( new URL[ this.updateSites.size() ] );
  }

  public void addUpdateSite( final String string ) throws MalformedURLException
  {
    this.updateSites.add( new URL( string ) );
  }

  public VersionedIdentifier[] getRequiredFeatures() {
    return this.requiredFeatures.toArray( new VersionedIdentifier[ requiredFeatures.size() ] );
  }

  public void addRequiredFeature( final String id, final String version ) {
    this.requiredFeatures.add( new VersionedIdentifier( id, version ) );
  }

  public File getPackagerConfigurationFolder() {
    return this.packagerConfigurationFolder;
  }

  public void setPackagerConfigurationFolder( final String folder ) {
    this.packagerConfigurationFolder = new File( folder );
  }

  public File getTargetFolder() {
    return this.baseFolder;
  }

  public void setExtensionSiteRelative( final String relativeFolder ) {
    this.extensionSite = new File( this.baseFolder, relativeFolder );
  }

  public File getExtensionSite() {
    return this.extensionSite;
  }

  public Platform addTargetPlatform( final String os,
                                     final String ws,
                                     final String arch,
                                     final String eclipseIniFileContent, 
                                     final String eclipseIniFilePath )
  {
    Platform platform = new Platform( os, ws, arch, eclipseIniFileContent, eclipseIniFilePath );
    this.targetPlatforms.add( platform );
    return platform;
  }

  public IPlatform[] getTargetPlatforms() {
    return this.targetPlatforms.toArray( new IPlatform[ targetPlatforms.size() ] );
  }

  public String getRootFileBaseName() {
    return ECLIPSE_PLATTFORM + this.rcpVersion + '-';
  }

  public File getRootFileFolder() {
    return this.rootFolder;
  }

  public void setRcpVersion( final String version ) {
    this.rcpVersion = version;
  }

  public void setRootFileFolder( final String folderName ) {
    this.rootFolder = new File( folderName );
  }

  public File getConfigIni() {
    return this.configIni;
  }

  public void setConfigIni( final String fileName ) {
    this.configIni = new File( fileName );
  }

  public void setProductName( final String name ) {
    this.productName = name;
  }

  public String getProductName() {
    return this.productName;
  }

  public String getInstallerConfigurationFolder() {
    return this.installerConfigurationFolder;
  }

  public void setInstallerConfigurationFolder( final String folder ) {
    this.installerConfigurationFolder = folder;
  }

  public void setEclipseProductId( final String eclipseProductId ) {
    this.eclipseProductId = eclipseProductId;
  }

  public String getEclipseProductId() {
    return this.eclipseProductId;
  }

  public void setInitialPerspectiveId( final String initialPerspectiveId ) {
    this.initialPerspectiveId = initialPerspectiveId;
  }
  
  public String getInitialPerspectiveId() {
    return this.initialPerspectiveId;
  }
}

Back to the top