diff options
Diffstat (limited to 'src/main/java/net/sf/antcontrib/cpptasks/os390/OS390Linker.java')
-rw-r--r-- | src/main/java/net/sf/antcontrib/cpptasks/os390/OS390Linker.java | 92 |
1 files changed, 55 insertions, 37 deletions
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/os390/OS390Linker.java b/src/main/java/net/sf/antcontrib/cpptasks/os390/OS390Linker.java index a091665..b9aea47 100644 --- a/src/main/java/net/sf/antcontrib/cpptasks/os390/OS390Linker.java +++ b/src/main/java/net/sf/antcontrib/cpptasks/os390/OS390Linker.java @@ -1,5 +1,5 @@ /* - * + * * Copyright 2002-2004 The Ant-Contrib project * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -33,7 +33,7 @@ import net.sf.antcontrib.cpptasks.VersionInfo; import org.apache.tools.ant.BuildException; /** * Adapter for the IBM (R) OS/390 (tm) Linker - * + * * @author Hiram Chirino ([email protected]) */ public final class OS390Linker extends CommandLineLinker { @@ -46,9 +46,9 @@ public final class OS390Linker extends CommandLineLinker { public static OS390Linker getInstance() { return instance; } - private boolean isADatasetLinker; + private final boolean isADatasetLinker; File outputFile; - private String outputPrefix; + private final String outputPrefix; CCTask task; private OS390Linker() { super("cxx", "/bogus", new String[]{".o", ".a", ".lib", ".xds"}, @@ -56,30 +56,35 @@ public final class OS390Linker extends CommandLineLinker { this.outputPrefix = ""; this.isADatasetLinker = true; } - private OS390Linker(String outputPrefix, String outputSuffix) { + private OS390Linker(final String outputPrefix, final String outputSuffix) { super("cxx", "/bogus", new String[]{".o", ".a", ".lib", ".x"}, new String[]{".dll"}, outputSuffix, false, false, null); this.outputPrefix = outputPrefix; this.isADatasetLinker = false; } - protected void addBase(long base, Vector args) { + @Override + protected void addBase(final long base, final Vector args) { } - protected void addFixed(Boolean fixed, Vector args) { + @Override + protected void addFixed(final Boolean fixed, final Vector args) { } - protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args) { + @Override + protected void addImpliedArgs(final boolean debug, final LinkType linkType, final Vector args) { if (linkType.isSharedLibrary()) { args.addElement("-W"); args.addElement("l,DLL"); } } - protected void addIncremental(boolean incremental, Vector args) { + @Override + protected void addIncremental(final boolean incremental, final Vector args) { } /* * @see CommandLineLinker#addLibrarySets(LibrarySet[], Vector, Vector, * Vector) */ - protected String[] addLibrarySets(CCTask task, LibrarySet[] libsets, - Vector preargs, Vector midargs, Vector endargs) { + @Override + protected String[] addLibrarySets(final CCTask task, final LibrarySet[] libsets, + final Vector preargs, final Vector midargs, final Vector endargs) { // If yo want to link against a library sitting in a dataset and // not in the HFS, you can just use the //'dataset' notation // to specify it. e.g: @@ -90,13 +95,13 @@ public final class OS390Linker extends CommandLineLinker { // as part of the link command. if (libsets != null) { for (int i = 0; i < libsets.length; i++) { - String libs[] = libsets[i].getLibs(); + final String libs[] = libsets[i].getLibs(); for (int j = 0; j < libs.length; j++) { if (libs[j].startsWith("//")) { endargs.addElement("-l"); endargs.addElement(libs[j]); } else if (libsets[i].getDataset() != null) { - String ds = libsets[i].getDataset(); + final String ds = libsets[i].getDataset(); endargs.addElement("//'" + ds + "(" + libs[j] + ")'"); } } @@ -104,31 +109,37 @@ public final class OS390Linker extends CommandLineLinker { } return super.addLibrarySets(task, libsets, preargs, midargs, endargs); } - protected void addMap(boolean map, Vector args) { + @Override + protected void addMap(final boolean map, final Vector args) { } - protected void addStack(int stack, Vector args) { + @Override + protected void addStack(final int stack, final Vector args) { } - protected void addEntry(String entry, Vector args) { + @Override + protected void addEntry(final String entry, final Vector args) { } - - public String getCommandFileSwitch(String commandFile) { + + @Override + public String getCommandFileSwitch(final String commandFile) { return "@" + commandFile; } + @Override public File[] getLibraryPath() { return CUtil.getPathFromEnvironment("LIB", ";"); } - - public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) { - StringBuffer buf = new StringBuffer(); - String[] patterns = new String[libnames.length * 3]; + + @Override + public String[] getLibraryPatterns(final String[] libnames, final LibraryTypeEnum libType) { + final StringBuffer buf = new StringBuffer(); + final String[] patterns = new String[libnames.length * 3]; int offset = addLibraryPatterns(libnames, buf, "lib", ".a", patterns, 0); offset = addLibraryPatterns(libnames, buf, "", ".x", patterns, offset); offset = addLibraryPatterns(libnames, buf, "", ".o", patterns, offset); return patterns; } - - private static int addLibraryPatterns(String[] libnames, StringBuffer buf, - String prefix, String extension, String[] patterns, int offset) { + + private static int addLibraryPatterns(final String[] libnames, final StringBuffer buf, + final String prefix, final String extension, final String[] patterns, final int offset) { for (int i = 0; i < libnames.length; i++) { buf.setLength(0); buf.append(prefix); @@ -138,14 +149,16 @@ public final class OS390Linker extends CommandLineLinker { } return offset + libnames.length; } - - public Linker getLinker(LinkType linkType) { + + @Override + public Linker getLinker(final LinkType linkType) { if (this == datasetLinker) return datasetLinker; if (linkType.isSharedLibrary()) return dllLinker; return instance; } + @Override public int getMaximumCommandLength() { return Integer.MAX_VALUE; } @@ -158,16 +171,19 @@ public final class OS390Linker extends CommandLineLinker { } return baseNames; } - protected String[] getOutputFileSwitch(CCTask task, String outputFile) { + @Override + protected String[] getOutputFileSwitch(final CCTask task, String outputFile) { if (isADatasetLinker && task.getDataset() != null) { - String ds = task.getDataset(); + final String ds = task.getDataset(); outputFile = "//'" + ds + "(" + outputFile + ")'"; } return getOutputFileSwitch(outputFile); } - public String[] getOutputFileSwitch(String outputFile) { + @Override + public String[] getOutputFileSwitch(final String outputFile) { return new String[]{"-o", outputFile}; } + @Override public boolean isCaseSensitive() { return OS390Processor.isCaseSensitive(); } @@ -175,14 +191,15 @@ public final class OS390Linker extends CommandLineLinker { * @see CommandLineLinker#link(Task, File, String[], * CommandLineLinkerConfiguration) */ - public void link(CCTask task, File outputFile, String[] sourceFiles, - CommandLineLinkerConfiguration config) throws BuildException { + @Override + public void link(final CCTask task, File outputFile, final String[] sourceFiles, + final CommandLineLinkerConfiguration config) throws BuildException { this.task = task; this.outputFile = outputFile; if (isADatasetLinker) { - int p = outputFile.getName().indexOf("."); + final int p = outputFile.getName().indexOf("."); if (p >= 0) { - String newname = outputFile.getName().substring(0, p); + final String newname = outputFile.getName().substring(0, p); outputFile = new File(outputFile.getParent(), newname); } } @@ -191,15 +208,16 @@ public final class OS390Linker extends CommandLineLinker { /* * @see CommandLineLinker#runCommand(Task, File, String[]) */ - protected int runCommand(CCTask task, File workingDir, String[] cmdline) + @Override + protected int runCommand(final CCTask task, final File workingDir, final String[] cmdline) throws BuildException { - int rc = super.runCommand(task, workingDir, cmdline); + final int rc = super.runCommand(task, workingDir, cmdline); // create the .xds file if everything was ok. if (rc == 0) { try { outputFile.delete(); new FileOutputStream(outputFile).close(); - } catch (IOException e) { + } catch (final IOException e) { throw new BuildException(e.getMessage()); } } |