Skip to content

Commit 0619fa5

Browse files
author
Open Lowcode SAS
committed
Close #155
1 parent 8ea24a2 commit 0619fa5

File tree

2 files changed

+65
-13
lines changed

2 files changed

+65
-13
lines changed

src/org/openlowcode/design/data/properties/basic/Numbered.java

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,13 @@ public Property<?> getDependentUniqueIdentified() {
6262
}
6363

6464
private String numberlabel = "Object Number";
65+
private int numberedextralength;
6566

6667
/**
67-
* create the 'Numbered' property with the default 'Number' labal
68+
* create the 'Numbered' property with the default 'Number' label
6869
*/
6970
public Numbered() {
70-
this(null);
71+
this(null, 64);
7172
}
7273

7374
/**
@@ -77,12 +78,39 @@ public Numbered() {
7778
* @param newnumberlabel the specific label for the number on that object
7879
*/
7980
public Numbered(String newnumberlabel) {
81+
this(newnumberlabel, 64);
82+
}
83+
84+
/**
85+
* create the 'Numbered' property with the default 'Number' label, and a
86+
* specified extra length for the numbered field. The numbered field can be from
87+
* 64 to 1024
88+
*
89+
* @param extralength a number between 64 (default) and 1024
90+
*/
91+
public Numbered(int extralength) {
92+
this(null, extralength);
93+
}
94+
95+
/**
96+
*
97+
* create the 'Numbered' property with a specific number label (e.g. 'Social
98+
* Security Nr') and a specified extra length for the numbered field. The
99+
* numbered field can be from 64 to 1024
100+
*
101+
* @param newnumberlabel the specific label for the number on that object
102+
* @param extralength a number between 64 (default) and 1024
103+
*/
104+
public Numbered(String newnumberlabel, int extralength) {
80105
super("NUMBERED");
81106
if (newnumberlabel != null)
82107
this.numberlabel = newnumberlabel;
83108
if (newnumberlabel != null)
84109
this.addFieldOverrides(new FieldOverrideForProperty("NUMBER", newnumberlabel));
85-
110+
if (extralength<64) throw new RuntimeException("Numbered extra length cannot be smaller than 64, value passed = "+extralength);
111+
if (extralength>1024) throw new RuntimeException("Numbered extra length cannot be higher than 1024, value passed = "+extralength);
112+
this.numberedextralength = extralength;
113+
this.setExtraAttributes(","+numberedextralength);
86114
}
87115

88116
/**
@@ -98,20 +126,20 @@ public void controlAfterParentDefinition() {
98126
this.addDependentProperty(uniqueidentified);
99127
DataAccessMethod setnumber = new DataAccessMethod("SETOBJECTNUMBER", null, false);
100128
setnumber.addInputArgument(new MethodArgument("OBJECT", new ObjectArgument("OBJECT", parent)));
101-
setnumber.addInputArgument(new MethodArgument("NR", new StringArgument("NR", 64)));
129+
setnumber.addInputArgument(new MethodArgument("NR", new StringArgument("NR", numberedextralength)));
102130
this.addDataAccessMethod(setnumber);
103131
// Fields
104-
StoredElement number = new StringStoredElement("NR", 64);
132+
StoredElement number = new StringStoredElement("NR", numberedextralength);
105133
this.addElementasSearchElement(number, numberlabel, "unique business identifier of the object",
106134
Property.FIELDDIPLSAY_TITLE_MOD, 900, 30, new SearchWidgetDefinition(true, "NR", numberlabel));
107135
this.addIndex(new Index("NUMBERINDEX", number, false));
108136
DataAccessMethod getobjectbynumber = new DataAccessMethod("GETOBJECTBYNUMBER",
109137
new ArrayArgument(new ObjectArgument("OBJECT", parent)), false);
110-
getobjectbynumber.addInputArgument(new MethodArgument("NR", new StringArgument("NR", 64)));
138+
getobjectbynumber.addInputArgument(new MethodArgument("NR", new StringArgument("NR", numberedextralength)));
111139
this.addDataAccessMethod(getobjectbynumber);
112140
DataAccessMethod getobjectbyuniquenumber = new DataAccessMethod("GETUNIQUEOBJECTBYNUMBER",
113141
new ObjectArgument("OBJECT", parent), true);
114-
getobjectbyuniquenumber.addInputArgument(new MethodArgument("NR", new StringArgument("NR", 64)));
142+
getobjectbyuniquenumber.addInputArgument(new MethodArgument("NR", new StringArgument("NR", numberedextralength)));
115143
this.addDataAccessMethod(getobjectbyuniquenumber);
116144

117145
}
@@ -149,7 +177,7 @@ public void setFinalSettings() {
149177
if (this.autonumberingrule == null) {
150178
returnvalues = new String[1];
151179
returnvalues[0] = ".setobjectnumber(number);";
152-
this.addDataInput(new StringArgument("NUMBER", 64, this.numberlabel));
180+
this.addDataInput(new StringArgument("NUMBER", numberedextralength, this.numberlabel));
153181

154182
} else {
155183
MethodAdditionalProcessing generatenumber = new MethodAdditionalProcessing(true,

src/org/openlowcode/server/data/properties/NumberedDefinition.java

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,23 +37,45 @@
3737
* @param <E> the parent data object
3838
*/
3939
public class NumberedDefinition<E extends DataObject<E> & UniqueidentifiedInterface<E>>
40-
extends DataObjectPropertyDefinition<E> {
40+
extends
41+
DataObjectPropertyDefinition<E> {
4142

4243
private StringStoredField nr;
4344
private CheckExistingNumber<E> numbercheck;
4445
UniqueidentifiedDefinition<E> dependentdefinitionuniqueidentified;
4546
private AutonumberingRule<E> autonumberingrule;
46-
4747
private String numberlabel = "Number";
48+
private int numberfieldlength;
4849

50+
/**
51+
*
52+
*
53+
* @param overridescheckexistingnumber
54+
*/
4955
public void overridesCheckExistingNumber(CheckExistingNumber<E> overridescheckexistingnumber) {
5056
this.numbercheck = overridescheckexistingnumber;
5157
}
5258

59+
/**
60+
* Creates a numbered property with default numbered length (64 characters)
61+
*
62+
* @param parentobject object the property is added on
63+
*/
5364
public NumberedDefinition(DataObjectDefinition<E> parentobject) {
65+
this(parentobject, 64);
66+
}
67+
68+
/**
69+
* Creates a numbered property with specified numbered length
70+
*
71+
* @param parentobject object the property is added on
72+
* @param numberfieldlength specified number field length
73+
*/
74+
public NumberedDefinition(DataObjectDefinition<E> parentobject, int numberfieldlength) {
5475
super(parentobject, "NUMBERED");
76+
this.numberfieldlength = numberfieldlength;
5577
numbercheck = new CheckExistingNumber<E>(this);
56-
nr = new StringStoredField("NR", null, 64);
78+
nr = new StringStoredField("NR", null, this.numberfieldlength);
5779
this.addFieldSchema(nr);
5880
this.autonumberingrule = null;
5981
StoredTableIndex nrindex = new StoredTableIndex("NR");
@@ -131,8 +153,10 @@ public QueryCondition getUniversalQueryCondition(String alias) {
131153

132154
@SuppressWarnings({ "rawtypes", "unchecked" })
133155
@Override
134-
public FlatFileLoaderColumn<E> getFlatFileLoaderColumn(DataObjectDefinition<E> objectdefinition,
135-
String[] columnattributes, PropertyExtractor<E> propertyextractor,
156+
public FlatFileLoaderColumn<E> getFlatFileLoaderColumn(
157+
DataObjectDefinition<E> objectdefinition,
158+
String[] columnattributes,
159+
PropertyExtractor<E> propertyextractor,
136160
ChoiceValue<ApplocaleChoiceDefinition> locale) {
137161
if (columnattributes.length == 0)
138162
return new NumberedFlatFileLoader(objectdefinition, this, false, propertyextractor);

0 commit comments

Comments
 (0)