Skip to content

Commit 67ca483

Browse files
Alexander LipplingGerrit Code Review
authored andcommitted
Merge "Shrink instanciation of build phases" into xcodeprojreader/master
2 parents 26a25c1 + 3b30689 commit 67ca483

File tree

11 files changed

+44
-67
lines changed

11 files changed

+44
-67
lines changed

src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/BuildPhase.java

Lines changed: 11 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@
2525

2626
public abstract class BuildPhase extends Element
2727
{
28+
29+
private final static Package buildPhasesPackage = BuildPhase.class.getPackage();
30+
2831
public BuildPhase(ProjectFile projectFile)
2932
{
3033
this(projectFile, projectFile.createDict());
@@ -37,41 +40,15 @@ public BuildPhase(ProjectFile projectFile, Dict dict)
3740

3841
public static BuildPhase create(ProjectFile projectFile, Dict dict)
3942
{
40-
String isa = dict.getString("isa");
41-
BuildPhase phase = null;
42-
if (AppleScriptBuildPhase.isa.equals(isa))
43-
{
44-
phase = new AppleScriptBuildPhase(projectFile, dict);
43+
final String isa = dict.getString("isa");
44+
try {
45+
final Class<?> clazz = Class.forName(buildPhasesPackage.getName() + "." + isa);
46+
return (BuildPhase)clazz.getDeclaredConstructor(new Class[] {ProjectFile.class, Dict.class}).newInstance(projectFile, dict);
4547
}
46-
else if (CopyFilesBuildPhase.isa.equals(isa))
47-
{
48-
phase = new CopyFilesBuildPhase(projectFile, dict);
48+
catch (RuntimeException e) {
49+
throw e;
50+
} catch(Exception e) {
51+
throw new RuntimeException("Could not instanciate build phase for type (isa) '" + isa + "'.", e);
4952
}
50-
else if (FrameworksBuildPhase.isa.equals(isa))
51-
{
52-
phase = new FrameworksBuildPhase(projectFile, dict);
53-
}
54-
else if (HeadersBuildPhase.isa.equals(isa))
55-
{
56-
phase = new HeadersBuildPhase(projectFile, dict);
57-
}
58-
else if (ResourcesBuildPhase.isa.equals(isa))
59-
{
60-
phase = new ResourcesBuildPhase(projectFile, dict);
61-
}
62-
else if (ShellScriptBuildPhase.isa.equals(isa))
63-
{
64-
phase = new ShellScriptBuildPhase(projectFile, dict);
65-
}
66-
else if (SourcesBuildPhase.isa.equals(isa))
67-
{
68-
phase = new SourcesBuildPhase(projectFile, dict);
69-
}
70-
else
71-
{
72-
throw new IllegalStateException("Unknown build phase (isa: " + isa + ")");
73-
}
74-
return phase;
7553
}
76-
7754
}

src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/AppleScriptBuildPhase.java renamed to src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/PBXAppleScriptBuildPhase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@
2222
import com.sap.prd.mobile.ios.mios.xcodeprojreader.Dict;
2323
import com.sap.prd.mobile.ios.mios.xcodeprojreader.ProjectFile;
2424

25-
public class AppleScriptBuildPhase extends BuildPhase
25+
public class PBXAppleScriptBuildPhase extends BuildPhase
2626
{
2727
public static final String isa = "PBXAppleScriptBuildPhase"; // unconfirmed
2828

29-
public AppleScriptBuildPhase(ProjectFile projectFile)
29+
public PBXAppleScriptBuildPhase(ProjectFile projectFile)
3030
{
3131
this(projectFile, projectFile.createDict());
3232
}
3333

34-
AppleScriptBuildPhase(ProjectFile projectFile, Dict buildConfigurationList)
34+
PBXAppleScriptBuildPhase(ProjectFile projectFile, Dict buildConfigurationList)
3535
{
3636
super(projectFile, buildConfigurationList);
3737
}

src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/CopyFilesBuildPhase.java renamed to src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/PBXCopyFilesBuildPhase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@
2222
import com.sap.prd.mobile.ios.mios.xcodeprojreader.Dict;
2323
import com.sap.prd.mobile.ios.mios.xcodeprojreader.ProjectFile;
2424

25-
public class CopyFilesBuildPhase extends BuildPhase
25+
public class PBXCopyFilesBuildPhase extends BuildPhase
2626
{
2727
public static final String isa = "PBXCopyFilesBuildPhase";
2828

29-
public CopyFilesBuildPhase(ProjectFile projectFile)
29+
public PBXCopyFilesBuildPhase(ProjectFile projectFile)
3030
{
3131
this(projectFile, projectFile.createDict());
3232
}
3333

34-
CopyFilesBuildPhase(ProjectFile projectFile, Dict buildConfigurationList)
34+
PBXCopyFilesBuildPhase(ProjectFile projectFile, Dict buildConfigurationList)
3535
{
3636
super(projectFile, buildConfigurationList);
3737
}

src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/FrameworksBuildPhase.java renamed to src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/PBXFrameworksBuildPhase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@
2222
import com.sap.prd.mobile.ios.mios.xcodeprojreader.Dict;
2323
import com.sap.prd.mobile.ios.mios.xcodeprojreader.ProjectFile;
2424

25-
public class FrameworksBuildPhase extends BuildPhase
25+
public class PBXFrameworksBuildPhase extends BuildPhase
2626
{
2727
public static final String isa = "PBXFrameworksBuildPhase";
2828

29-
public FrameworksBuildPhase(ProjectFile projectFile)
29+
public PBXFrameworksBuildPhase(ProjectFile projectFile)
3030
{
3131
this(projectFile, projectFile.createDict());
3232
}
3333

34-
FrameworksBuildPhase(ProjectFile projectFile, Dict buildConfigurationList)
34+
PBXFrameworksBuildPhase(ProjectFile projectFile, Dict buildConfigurationList)
3535
{
3636
super(projectFile, buildConfigurationList);
3737
}

src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/HeadersBuildPhase.java renamed to src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/PBXHeadersBuildPhase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@
2222
import com.sap.prd.mobile.ios.mios.xcodeprojreader.Dict;
2323
import com.sap.prd.mobile.ios.mios.xcodeprojreader.ProjectFile;
2424

25-
public class HeadersBuildPhase extends BuildPhase
25+
public class PBXHeadersBuildPhase extends BuildPhase
2626
{
2727
public static final String isa = "PBXHeadersBuildPhase";
2828

29-
public HeadersBuildPhase(ProjectFile projectFile)
29+
public PBXHeadersBuildPhase(ProjectFile projectFile)
3030
{
3131
this(projectFile, projectFile.createDict());
3232
}
3333

34-
HeadersBuildPhase(ProjectFile projectFile, Dict buildConfigurationList)
34+
PBXHeadersBuildPhase(ProjectFile projectFile, Dict buildConfigurationList)
3535
{
3636
super(projectFile, buildConfigurationList);
3737
}

src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/ResourcesBuildPhase.java renamed to src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/PBXResourcesBuildPhase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@
2222
import com.sap.prd.mobile.ios.mios.xcodeprojreader.Dict;
2323
import com.sap.prd.mobile.ios.mios.xcodeprojreader.ProjectFile;
2424

25-
public class ResourcesBuildPhase extends BuildPhase
25+
public class PBXResourcesBuildPhase extends BuildPhase
2626
{
2727
public static final String isa = "PBXResourcesBuildPhase";
2828

29-
public ResourcesBuildPhase(ProjectFile projectFile)
29+
public PBXResourcesBuildPhase(ProjectFile projectFile)
3030
{
3131
this(projectFile, projectFile.createDict());
3232
}
3333

34-
ResourcesBuildPhase(ProjectFile projectFile, Dict buildConfigurationList)
34+
PBXResourcesBuildPhase(ProjectFile projectFile, Dict buildConfigurationList)
3535
{
3636
super(projectFile, buildConfigurationList);
3737
}

src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/ShellScriptBuildPhase.java renamed to src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/PBXShellScriptBuildPhase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,16 @@
2525
import com.sap.prd.mobile.ios.mios.xcodeprojreader.ProjectFile;
2626
import com.sap.prd.mobile.ios.mios.xcodeprojreader.ReferenceArray;
2727

28-
public class ShellScriptBuildPhase extends BuildPhase
28+
public class PBXShellScriptBuildPhase extends BuildPhase
2929
{
3030
public static final String isa = "PBXShellScriptBuildPhase";
3131

32-
public ShellScriptBuildPhase(ProjectFile projectFile)
32+
public PBXShellScriptBuildPhase(ProjectFile projectFile)
3333
{
3434
this(projectFile, projectFile.createDict());
3535
}
3636

37-
public ShellScriptBuildPhase(ProjectFile projectFile, Dict dict)
37+
public PBXShellScriptBuildPhase(ProjectFile projectFile, Dict dict)
3838
{
3939
super(projectFile, dict);
4040
}

src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/SourcesBuildPhase.java renamed to src/main/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/buildphases/PBXSourcesBuildPhase.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@
2222
import com.sap.prd.mobile.ios.mios.xcodeprojreader.Dict;
2323
import com.sap.prd.mobile.ios.mios.xcodeprojreader.ProjectFile;
2424

25-
public class SourcesBuildPhase extends BuildPhase
25+
public class PBXSourcesBuildPhase extends BuildPhase
2626
{
2727
public static final String isa = "PBXSourcesBuildPhase";
2828

29-
public SourcesBuildPhase(ProjectFile projectFile)
29+
public PBXSourcesBuildPhase(ProjectFile projectFile)
3030
{
3131
this(projectFile, projectFile.createDict());
3232
}
3333

34-
SourcesBuildPhase(ProjectFile projectFile, Dict buildConfigurationList)
34+
PBXSourcesBuildPhase(ProjectFile projectFile, Dict buildConfigurationList)
3535
{
3636
super(projectFile, buildConfigurationList);
3737
}

src/test/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/ShellScriptBuildPhaseTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import org.junit.Before;
2626
import org.junit.Test;
2727

28-
import com.sap.prd.mobile.ios.mios.xcodeprojreader.buildphases.ShellScriptBuildPhase;
28+
import com.sap.prd.mobile.ios.mios.xcodeprojreader.buildphases.PBXShellScriptBuildPhase;
2929

3030
public class ShellScriptBuildPhaseTest
3131
{
@@ -40,7 +40,7 @@ public void before() throws Exception
4040
@Test
4141
public void defaultValues()
4242
{
43-
ShellScriptBuildPhase phase = new ShellScriptBuildPhase(projectFile);
43+
PBXShellScriptBuildPhase phase = new PBXShellScriptBuildPhase(projectFile);
4444

4545
assertNull(phase.getIsA());
4646
assertEquals(0, phase.getFiles().size());
@@ -51,7 +51,7 @@ public void defaultValues()
5151

5252
phase.setDefaultValues();
5353

54-
assertEquals(ShellScriptBuildPhase.isa, phase.getIsA());
54+
assertEquals(PBXShellScriptBuildPhase.isa, phase.getIsA());
5555
assertEquals(0, phase.getFiles().size());
5656
assertEquals(0, phase.getInputPaths().size());
5757
assertEquals(0, phase.getOutputPaths().size());
@@ -62,7 +62,7 @@ public void defaultValues()
6262
@Test
6363
public void shellPath()
6464
{
65-
ShellScriptBuildPhase phase = new ShellScriptBuildPhase(projectFile);
65+
PBXShellScriptBuildPhase phase = new PBXShellScriptBuildPhase(projectFile);
6666
phase.setShellScript("env > test.txt");
6767
assertEquals("env > test.txt", phase.getShellScript());
6868
}

src/test/java/com/sap/prd/mobile/ios/mios/xcodeprojreader/TargetTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
import org.junit.Test;
2727

2828
import com.sap.prd.mobile.ios.mios.xcodeprojreader.buildphases.BuildPhase;
29-
import com.sap.prd.mobile.ios.mios.xcodeprojreader.buildphases.FrameworksBuildPhase;
30-
import com.sap.prd.mobile.ios.mios.xcodeprojreader.buildphases.ResourcesBuildPhase;
31-
import com.sap.prd.mobile.ios.mios.xcodeprojreader.buildphases.SourcesBuildPhase;
29+
import com.sap.prd.mobile.ios.mios.xcodeprojreader.buildphases.PBXFrameworksBuildPhase;
30+
import com.sap.prd.mobile.ios.mios.xcodeprojreader.buildphases.PBXResourcesBuildPhase;
31+
import com.sap.prd.mobile.ios.mios.xcodeprojreader.buildphases.PBXSourcesBuildPhase;
3232

3333
public class TargetTest
3434
{
@@ -51,8 +51,8 @@ public void buildPhases()
5151
{
5252
ReferenceArray<BuildPhase> buildPhases = target.getBuildPhases();
5353
assertEquals(3, buildPhases.size());
54-
assertEquals(SourcesBuildPhase.isa, buildPhases.get(0).getIsA());
55-
assertEquals(FrameworksBuildPhase.isa, buildPhases.get(1).getIsA());
56-
assertEquals(ResourcesBuildPhase.isa, buildPhases.get(2).getIsA());
54+
assertEquals(PBXSourcesBuildPhase.isa, buildPhases.get(0).getIsA());
55+
assertEquals(PBXFrameworksBuildPhase.isa, buildPhases.get(1).getIsA());
56+
assertEquals(PBXResourcesBuildPhase.isa, buildPhases.get(2).getIsA());
5757
}
5858
}

0 commit comments

Comments
 (0)