LegacyProxyClientConfig.java
/*
** Module : LegacyProxyClientConfig.java
** Abstract : Contains details about a legacy 4GL external program exposed as a legacy open client proxy.
**
** Copyright (c) 2020-2022, Golden Code Development Corporation.
**
** -#- -I- --Date-- ---------------------------------------Description----------------------------------------
** 001 CA 20201008 Created initial version.
** 002 CA 20220427 Added support for non-persistent, SINGLETON, SINGLE-RUN and SubAppObject mode.
*/
/*
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU Affero General Public License as
** published by the Free Software Foundation, either version 3 of the
** License, or (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU Affero General Public License for more details.
**
** You may find a copy of the GNU Affero GPL version 3 at the following
** location: https://www.gnu.org/licenses/agpl-3.0.en.html
**
** Additional terms under GNU Affero GPL version 3 section 7:
**
** Under Section 7 of the GNU Affero GPL version 3, the following additional
** terms apply to the works covered under the License. These additional terms
** are non-permissive additional terms allowed under Section 7 of the GNU
** Affero GPL version 3 and may not be removed by you.
**
** 0. Attribution Requirement.
**
** You must preserve all legal notices or author attributions in the covered
** work or Appropriate Legal Notices displayed by works containing the covered
** work. You may not remove from the covered work any author or developer
** credit already included within the covered work.
**
** 1. No License To Use Trademarks.
**
** This license does not grant any license or rights to use the trademarks
** Golden Code, FWD, any Golden Code or FWD logo, or any other trademarks
** of Golden Code Development Corporation. You are not authorized to use the
** name Golden Code, FWD, or the names of any author or contributor, for
** publicity purposes without written authorization.
**
** 2. No Misrepresentation of Affiliation.
**
** You may not represent yourself as Golden Code Development Corporation or FWD.
**
** You may not represent yourself for publicity purposes as associated with
** Golden Code Development Corporation, FWD, or any author or contributor to
** the covered work, without written authorization.
**
** 3. No Misrepresentation of Source or Origin.
**
** You may not represent the covered work as solely your work. All modified
** versions of the covered work must be marked in a reasonable way to make it
** clear that the modified work is not originating from Golden Code Development
** Corporation or FWD. All modified versions must contain the notices of
** attribution required in this license.
*/
package com.goldencode.p2j.pattern;
/**
* Specifies details about an external program exposed as a legacy proxy open client, to generate its Java
* code.
*/
public class LegacyProxyClientConfig
{
/** Flag indicating if the program is ran PERSISTENT. */
private final boolean persistent;
/** Flag indicating if the program is ran SINGLETON. */
private final boolean singleton;
/** Flag indicating if the program is ran SINGLE-RUN. */
private final boolean singleRun;
/** The program name (without extension). */
private final String name;
/** The definition folder for this external program. */
private final String folder;
/** The JAST file name used to generate its Java code. */
private String astFilename;
/** The full program name, including folder. */
private final String fullName;
/** The Java package for the proxy program. */
private final String pkg;
/** The Java name of the (Sub)AppObject where this program is configured. */
private final String appObject;
/** The legacy name of the (Sub)AppObject where this program is configured. */
private final String legacyName;
/** Flag indicating if unknown arguments are allowed. */
private final boolean allowUnknown;
/** The program file's extension.*/
private final String progExt;
/**
* Initialize this instance.
*
* @param folder
* The external program definition folder.
* @param name
* The program name.
* @param fullName
* The full name, including folder.
* @param progExt
* The program file's extension.
* @param procType
* The procedure type
* @param legacyName
* The legacy name of the (Sub)AppObject where this program is configured.
* @param appObject
* The Java name of the (Sub)AppObject where this program is configured.
* @param pkg
* The Java package for the proxy program.
* @param allowUnknown
* Flag indicating if unknown arguments are allowed.
*/
public LegacyProxyClientConfig(String folder,
String name,
String fullName,
String progExt,
int procType,
String legacyName,
String appObject,
String pkg,
boolean allowUnknown)
{
this.name = name;
this.folder = folder;
this.fullName = fullName;
this.progExt = progExt;
this.legacyName = legacyName;
this.appObject = appObject;
this.pkg = pkg;
this.allowUnknown = allowUnknown;
this.persistent = procType == 2;
this.singleRun = procType == 3;
this.singleton = procType == 4;
}
/**
* Get the full name (including folder).
*
* @return See above.
*/
public String getFullName()
{
return fullName;
}
/**
* Get the program file' extension.
*
* @return See above.
*/
public String getProgExt()
{
return progExt;
}
/**
* Get the external program's definition folder.
*
* @return See above.
*/
public String getFolder()
{
return folder;
}
/**
* Get the external program base name.
*
* @return See above.
*/
public String getName()
{
return name;
}
/**
* Check if this program is ran persistent.
*
* @return See above.
*/
public boolean isPersistent()
{
return persistent;
}
/**
* Check if this program is ran SINGLETON.
*
* @return See above.
*/
public boolean isSingleton()
{
return singleton;
}
/**
* Check if this program is ran SINGLE-RUN.
*
* @return See above.
*/
public boolean isSingleRun()
{
return singleRun;
}
/**
* Get the Java package for this proxy program.
*
* @return See above.
*/
public String getPkg()
{
return pkg;
}
/**
* Get the Java name of the (Sub)AppObject where this program is configured
*
* @return See above.
*/
public String getAppObject()
{
return appObject;
}
/**
* Get the legacy name of the (Sub)AppObject where this program is configured
*
* @return See above.
*/
public String getLegacyName()
{
return legacyName;
}
/**
* Check if unknowns are allowed.
*
* @return See above.
*/
public boolean isAllowUnknown()
{
return allowUnknown;
}
/**
* Get the {@link #astFilename}.
*
* @return See above.
*/
public String getAstFilename()
{
return astFilename;
}
/**
* Set the JAST file name.
*
* @param astFilename
* Full path for the JAST file.
*/
public void setAstFilename(String astFilename)
{
this.astFilename = astFilename;
}
}