From 22df450d9569a86b0241d0b83c2ce5643878f1f8 Mon Sep 17 00:00:00 2001 From: baltasarq Date: Tue, 17 May 2016 00:45:44 +0200 Subject: [PATCH] Inspector nearly finished, except for renaming methods --- .gitignore | 2 +- .idea/workspace.xml | 612 +++++++++--------- ToDo.txt | 1 - .../devbaltasarq/pooi/core/Interpreter.java | 4 +- src/com/devbaltasarq/pooi/core/ObjectBag.java | 78 ++- src/com/devbaltasarq/pooi/core/Parser.java | 6 +- src/com/devbaltasarq/pooi/core/Runtime.java | 4 +- .../pooi/core/evaluables/Method.java | 21 + .../InterpretedMethod.java | 9 +- .../{method => methods}/NativeMethod.java | 2 +- .../nativemethods/NativeMethodCopy.java | 9 +- .../NativeMethodCreateChild.java | 9 +- .../nativemethods/NativeMethodErase.java | 9 +- .../nativemethods/NativeMethodGetName.java | 9 +- .../nativemethods/NativeMethodGetPath.java | 9 +- .../nativemethods/NativeMethodIntAbs.java | 9 +- .../NativeMethodIntDivideBy.java | 9 +- .../NativeMethodIntIsEqualTo.java | 9 +- .../NativeMethodIntIsGreaterThan.java | 9 +- .../NativeMethodIntIsLessThan.java | 9 +- .../NativeMethodIntIsNegative.java | 9 +- .../NativeMethodIntMultiplyBy.java | 9 +- .../NativeMethodIntSubstract.java | 9 +- .../nativemethods/NativeMethodIntSum.java | 9 +- .../nativemethods/NativeMethodIs.java | 9 +- .../nativemethods/NativeMethodList.java | 9 +- .../nativemethods/NativeMethodOsNow.java | 9 +- .../nativemethods/NativeMethodRealAbs.java | 9 +- .../NativeMethodRealDivideBy.java | 9 +- .../NativeMethodRealIsEqualTo.java | 9 +- .../NativeMethodRealIsGreaterThan.java | 9 +- .../NativeMethodRealIsLessThan.java | 9 +- .../NativeMethodRealIsNegative.java | 9 +- .../NativeMethodRealMultiplyBy.java | 9 +- .../NativeMethodRealSubstract.java | 9 +- .../nativemethods/NativeMethodRealSum.java | 9 +- .../nativemethods/NativeMethodSet.java | 11 +- .../nativemethods/NativeMethodSetName.java | 21 +- .../nativemethods/NativeMethodStr.java | 9 +- .../nativemethods/NativeMethodStrCharAt.java | 9 +- .../nativemethods/NativeMethodStrConcat.java | 9 +- .../nativemethods/NativeMethodStrIsEmpty.java | 9 +- .../NativeMethodStrIsEqualTo.java | 9 +- .../NativeMethodStrIsGreaterThan.java | 9 +- .../NativeMethodStrIsLessThan.java | 9 +- .../NativeMethodStrIsNumber.java | 9 +- .../nativemethods/NativeMethodStrLeft.java | 9 +- .../nativemethods/NativeMethodStrLength.java | 9 +- .../nativemethods/NativeMethodStrMays.java | 9 +- .../nativemethods/NativeMethodStrMins.java | 9 +- .../nativemethods/NativeMethodStrRight.java | 9 +- .../nativemethods/NativeMethodStrSub.java | 9 +- .../nativemethods/NativeMethodStrToInt.java | 9 +- .../nativemethods/NativeMethodStrToReal.java | 9 +- .../nativemethods/NativeMethodStrTrim.java | 9 +- .../devbaltasarq/pooi/core/objs/ObjectOs.java | 2 +- .../pooi/core/objs/ObjectParent.java | 4 +- .../devbaltasarq/pooi/res/addAttribute.png | Bin 559 -> 438 bytes src/com/devbaltasarq/pooi/res/addMethod.png | Bin 640 -> 527 bytes src/com/devbaltasarq/pooi/res/clear.png | Bin 389 -> 0 bytes src/com/devbaltasarq/pooi/res/copy.png | Bin 296 -> 193 bytes src/com/devbaltasarq/pooi/res/delete.png | Bin 0 -> 265 bytes src/com/devbaltasarq/pooi/res/execute.png | Bin 0 -> 452 bytes src/com/devbaltasarq/pooi/ui/Inspector.java | 444 ++++++++----- .../devbaltasarq/pooi/ui/VisualEngine.java | 17 +- 65 files changed, 1007 insertions(+), 618 deletions(-) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/InterpretedMethod.java (95%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/NativeMethod.java (96%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodCopy.java (81%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodCreateChild.java (79%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodErase.java (79%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodGetName.java (77%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodGetPath.java (77%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodIntAbs.java (83%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodIntDivideBy.java (89%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodIntIsEqualTo.java (87%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodIntIsGreaterThan.java (88%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodIntIsLessThan.java (87%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodIntIsNegative.java (83%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodIntMultiplyBy.java (88%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodIntSubstract.java (88%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodIntSum.java (88%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodIs.java (83%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodList.java (76%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodOsNow.java (85%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodRealAbs.java (83%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodRealDivideBy.java (89%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodRealIsEqualTo.java (88%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodRealIsGreaterThan.java (88%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodRealIsLessThan.java (88%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodRealIsNegative.java (83%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodRealMultiplyBy.java (88%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodRealSubstract.java (88%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodRealSum.java (89%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodSet.java (82%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodSetName.java (70%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStr.java (79%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrCharAt.java (88%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrConcat.java (88%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrIsEmpty.java (83%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrIsEqualTo.java (86%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrIsGreaterThan.java (86%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrIsLessThan.java (86%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrIsNumber.java (85%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrLeft.java (89%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrLength.java (83%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrMays.java (84%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrMins.java (84%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrRight.java (89%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrSub.java (88%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrToInt.java (86%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrToReal.java (84%) rename src/com/devbaltasarq/pooi/core/evaluables/{method => methods}/nativemethods/NativeMethodStrTrim.java (83%) delete mode 100644 src/com/devbaltasarq/pooi/res/clear.png create mode 100644 src/com/devbaltasarq/pooi/res/delete.png create mode 100644 src/com/devbaltasarq/pooi/res/execute.png diff --git a/.gitignore b/.gitignore index a5d0c00..7f4ab4d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ *.class -out +out/ # Backup files *~ *.bak diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 02c8362..73cf8ba 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -7,7 +7,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -71,91 +133,25 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - + - - + + - - - - - - - - - - - - + + - - + @@ -164,24 +160,22 @@ - - + + - + + - - + + - - - - - - + + + @@ -211,57 +205,57 @@ @@ -505,7 +499,7 @@ @@ -1142,6 +1136,9 @@ + + + 1453802639057 @@ -1203,7 +1200,7 @@ - @@ -1227,28 +1224,27 @@ - + - + - + - + - - + - + @@ -1261,6 +1257,7 @@ + @@ -1288,423 +1285,398 @@ - - - file://$PROJECT_DIR$/src/com/devbaltasarq/pooi/core/ObjectBag.java - 134 - - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - - + - - + + - + - - - - - - + + - + - - - + + - + - - - + + - + - - + + - - - - - + - + - - + + - - + + - + - - - - - - + + - + - - - - - - - - + + + - + - - + + - + - - + + - - - - + + - + - - + + - + + - - + + - + - - - - - + + + - + + + + + + + + + - - + + - + - + - - + + - + - - - + + + + + + - + - - - + + + + + diff --git a/ToDo.txt b/ToDo.txt index db6b759..f09e42b 100644 --- a/ToDo.txt +++ b/ToDo.txt @@ -3,4 +3,3 @@ - Needs Math object with sqr, sqrt, PI. - Needs "os" object with import()... These could be imported objects stored in a special dir (part of the jar) that could be imported. - Needs libraries, such as Complex. This could be provided with import, and loaded as any transcription. -- Store the last directory diff --git a/src/com/devbaltasarq/pooi/core/Interpreter.java b/src/com/devbaltasarq/pooi/core/Interpreter.java index f958e8c..96b4215 100644 --- a/src/com/devbaltasarq/pooi/core/Interpreter.java +++ b/src/com/devbaltasarq/pooi/core/Interpreter.java @@ -3,8 +3,8 @@ import com.devbaltasarq.pooi.core.evaluables.Command; import com.devbaltasarq.pooi.core.evaluables.Method; import com.devbaltasarq.pooi.core.evaluables.Reference; -import com.devbaltasarq.pooi.core.evaluables.method.InterpretedMethod; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.InterpretedMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectStr; diff --git a/src/com/devbaltasarq/pooi/core/ObjectBag.java b/src/com/devbaltasarq/pooi/core/ObjectBag.java index ec50768..0e0dd18 100644 --- a/src/com/devbaltasarq/pooi/core/ObjectBag.java +++ b/src/com/devbaltasarq/pooi/core/ObjectBag.java @@ -258,6 +258,22 @@ public String getNameOrValueAsString() { return toret; } + /** + * Returns the number of attributes in this object + * @return The number of attributes, as an int. + */ + public int getNumberOfAttributes() { + return this.attributes.size(); + } + + /** + * Returns the number of methods in this object + * @return the number of methods, as an int + */ + public int getNumberOfMethods() { + return this.methods.size(); + } + /** @return the number of objects between this object and root, plus itself */ public int getInheritanceLevel() { int toret = 1; @@ -407,7 +423,7 @@ public String toJson() public Reference toReference() { Attribute[] path = this.getObjectPath(); - ArrayList toret = new ArrayList<>(); + ArrayList toret = new ArrayList<>( path.length ); for(int i = 0; i < path.length; ++i) { toret.add( path[ i ].getName() ); @@ -594,6 +610,66 @@ public Attribute lookUpAttribute(String atrName) return toret; } + public void renameMember(String oldName, String newName) throws InterpretError + { + final Attribute attr = this.localLookUpAttribute( oldName ); + final Method mth = this.localLookUpMethod( oldName ); + + if ( attr != null ) { + this.renameAttribute( oldName, newName ); + } + else + if ( mth != null ) { + this.renameMethod( oldName, newName ); + } + else { + throw new InterpretError( "member " + oldName + " was not found" ); + } + + return; + } + + public void renameMethod(String oldName, String newName) throws InterpretError { + + } + + public void renameAttribute(String oldName, String newName) throws InterpretError { + final Attribute attr = this.localLookUpAttribute( oldName ); + ObjectBag ref = null; + + if ( attr != null ) { + try { + ref = attr.getReference(); + if ( ref != null ) { + ref.setName( newName ); + attr.setName( newName ); + this.attributes.remove( oldName ); + this.attributes.put( newName, attr ); + } else { + throw new InterpretError( "INTERNAL ERROR: reference points to void" ); + } + } catch(InterpretError exc) { + if ( ref != null + && ref.getName().equals( newName ) ) + { + ref.setName( oldName ); + } + + if ( attr != null + && attr.getName().equals( newName ) ) + { + attr.setName( oldName ); + this.attributes.remove( newName ); + this.attributes.put( oldName, attr ); + } + + throw exc; + } + } else { + throw new InterpretError( "attribute " + oldName + " was not found" ); + } + } + /** * Returns an attribute by its name, in *this* object *only* * @param atrName The name of the attribute diff --git a/src/com/devbaltasarq/pooi/core/Parser.java b/src/com/devbaltasarq/pooi/core/Parser.java index 0acaff1..2815873 100644 --- a/src/com/devbaltasarq/pooi/core/Parser.java +++ b/src/com/devbaltasarq/pooi/core/Parser.java @@ -8,9 +8,9 @@ import com.devbaltasarq.pooi.core.evaluables.literals.IntLiteral; import com.devbaltasarq.pooi.core.evaluables.literals.RealLiteral; import com.devbaltasarq.pooi.core.evaluables.literals.StrLiteral; -import com.devbaltasarq.pooi.core.evaluables.method.InterpretedMethod; -import com.devbaltasarq.pooi.core.evaluables.method.nativemethods.NativeMethodSet; -import com.devbaltasarq.pooi.core.evaluables.method.nativemethods.NativeMethodStr; +import com.devbaltasarq.pooi.core.evaluables.methods.InterpretedMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.nativemethods.NativeMethodSet; +import com.devbaltasarq.pooi.core.evaluables.methods.nativemethods.NativeMethodStr; import com.devbaltasarq.pooi.core.exceps.InterpretError; import java.util.ArrayList; diff --git a/src/com/devbaltasarq/pooi/core/Runtime.java b/src/com/devbaltasarq/pooi/core/Runtime.java index 1e5094d..0db239e 100644 --- a/src/com/devbaltasarq/pooi/core/Runtime.java +++ b/src/com/devbaltasarq/pooi/core/Runtime.java @@ -9,8 +9,8 @@ import com.devbaltasarq.pooi.core.evaluables.literals.IntLiteral; import com.devbaltasarq.pooi.core.evaluables.literals.RealLiteral; import com.devbaltasarq.pooi.core.evaluables.literals.StrLiteral; -import com.devbaltasarq.pooi.core.evaluables.method.InterpretedMethod; -import com.devbaltasarq.pooi.core.evaluables.method.nativemethods.*; +import com.devbaltasarq.pooi.core.evaluables.methods.InterpretedMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.nativemethods.*; import com.devbaltasarq.pooi.core.exceps.AttributeNotFound; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.*; diff --git a/src/com/devbaltasarq/pooi/core/evaluables/Method.java b/src/com/devbaltasarq/pooi/core/evaluables/Method.java index 54c1779..58ef7bb 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/Method.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/Method.java @@ -62,6 +62,27 @@ public static String getStringFrom(Evaluable e) return toret; } + /** + * Returns a list with the formal parameters of the method + * @return a primitive vector of String, containing the formal parameters + */ + public abstract String[] getFormalParameters(); + + /** + * Returns a string with the formal parameters of the method + * @return a String, with the formal parameters + */ + public String getFormalParametersAsString() { + StringBuilder toret = new StringBuilder(); + + for(String param: this.getFormalParameters()) { + toret.append( toret ); + toret.append( ' ' ); + } + + return toret.toString().trim(); + } + /** @return Gets the body of the method as a representation in text */ public abstract String getMethodBodyAsString(); diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/InterpretedMethod.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/InterpretedMethod.java similarity index 95% rename from src/com/devbaltasarq/pooi/core/evaluables/method/InterpretedMethod.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/InterpretedMethod.java index 5912eb2..9346c04 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/InterpretedMethod.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/InterpretedMethod.java @@ -1,4 +1,4 @@ -package com.devbaltasarq.pooi.core.evaluables.method; +package com.devbaltasarq.pooi.core.evaluables.methods; import com.devbaltasarq.pooi.core.*; import com.devbaltasarq.pooi.core.evaluables.Command; @@ -47,7 +47,7 @@ public void setCmds(String cmds) throws InterpretError public void setRealParams(ObjectBag self, Evaluable[] args) throws InterpretError { - String[] formalParams = this.getFormalParams(); + String[] formalParams = this.getFormalParameters(); if ( args.length != formalParams.length ) { throw new InterpretError( "formal and real arguments do not match" ); @@ -145,7 +145,8 @@ public Evaluable getRealParameter(String id) return ( this.params.get( id ) ); } - public String[] getFormalParams() + @Override + public String[] getFormalParameters() { return this.formalParams; } @@ -157,7 +158,7 @@ public String getMethodBodyAsString() { toret.append( "{" ); // Add params - for(String param: this.getFormalParams()) { + for(String param: this.getFormalParameters()) { toret.append( param ); toret.append( ' ' ); } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/NativeMethod.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/NativeMethod.java similarity index 96% rename from src/com/devbaltasarq/pooi/core/evaluables/method/NativeMethod.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/NativeMethod.java index e2954dd..283a7ae 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/NativeMethod.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/NativeMethod.java @@ -1,4 +1,4 @@ -package com.devbaltasarq.pooi.core.evaluables.method; +package com.devbaltasarq.pooi.core.evaluables.methods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodCopy.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodCopy.java similarity index 81% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodCopy.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodCopy.java index e4465bf..8a0c1c3 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodCopy.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodCopy.java @@ -1,8 +1,8 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; /** @@ -41,4 +41,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodCreateChild.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodCreateChild.java similarity index 79% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodCreateChild.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodCreateChild.java index 663555f..9a98068 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodCreateChild.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodCreateChild.java @@ -1,8 +1,8 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; /** @@ -37,4 +37,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodErase.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodErase.java similarity index 79% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodErase.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodErase.java index 8464029..deaf2fc 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodErase.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodErase.java @@ -1,8 +1,8 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; /** @@ -39,4 +39,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "attrName" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodGetName.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodGetName.java similarity index 77% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodGetName.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodGetName.java index 3f87fe6..60bb936 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodGetName.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodGetName.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; /** @@ -33,4 +33,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodGetPath.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodGetPath.java similarity index 77% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodGetPath.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodGetPath.java index 3c5faee..4aace4f 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodGetPath.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodGetPath.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; /** @@ -33,4 +33,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntAbs.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntAbs.java similarity index 83% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntAbs.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntAbs.java index 087e954..c35c769 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntAbs.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntAbs.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; @@ -44,4 +44,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntDivideBy.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntDivideBy.java similarity index 89% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntDivideBy.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntDivideBy.java index 8553a82..8e34163 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntDivideBy.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntDivideBy.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -80,4 +80,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntIsEqualTo.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntIsEqualTo.java similarity index 87% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntIsEqualTo.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntIsEqualTo.java index b951495..9eb80ab 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntIsEqualTo.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntIsEqualTo.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -64,4 +64,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntIsGreaterThan.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntIsGreaterThan.java similarity index 88% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntIsGreaterThan.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntIsGreaterThan.java index 736c12a..2fa2b8d 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntIsGreaterThan.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntIsGreaterThan.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -64,4 +64,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntIsLessThan.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntIsLessThan.java similarity index 87% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntIsLessThan.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntIsLessThan.java index 4f5a5f0..ea48938 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntIsLessThan.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntIsLessThan.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -64,4 +64,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntIsNegative.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntIsNegative.java similarity index 83% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntIsNegative.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntIsNegative.java index 8dfdc98..3ea6571 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntIsNegative.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntIsNegative.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; @@ -44,4 +44,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntMultiplyBy.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntMultiplyBy.java similarity index 88% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntMultiplyBy.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntMultiplyBy.java index 9803200..f605a64 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntMultiplyBy.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntMultiplyBy.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -72,4 +72,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntSubstract.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntSubstract.java similarity index 88% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntSubstract.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntSubstract.java index 88bc829..e79bd56 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntSubstract.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntSubstract.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -72,4 +72,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntSum.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntSum.java similarity index 88% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntSum.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntSum.java index 6e7299d..eb128d2 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIntSum.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIntSum.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -72,4 +72,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIs.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIs.java similarity index 83% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIs.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIs.java index c31e80f..a148ae9 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodIs.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodIs.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; /** @@ -49,4 +49,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "obj" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodList.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodList.java similarity index 76% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodList.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodList.java index 99455da..82d8205 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodList.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodList.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; /** @@ -33,4 +33,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodOsNow.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodOsNow.java similarity index 85% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodOsNow.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodOsNow.java index 5fbc87f..6e042d9 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodOsNow.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodOsNow.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectDateTime; @@ -46,4 +46,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealAbs.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealAbs.java similarity index 83% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealAbs.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealAbs.java index fb377d1..644e65c 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealAbs.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealAbs.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -44,4 +44,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealDivideBy.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealDivideBy.java similarity index 89% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealDivideBy.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealDivideBy.java index 25faeda..2df1fd1 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealDivideBy.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealDivideBy.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -80,4 +80,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealIsEqualTo.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealIsEqualTo.java similarity index 88% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealIsEqualTo.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealIsEqualTo.java index 3d34afe..89675bf 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealIsEqualTo.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealIsEqualTo.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -64,4 +64,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealIsGreaterThan.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealIsGreaterThan.java similarity index 88% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealIsGreaterThan.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealIsGreaterThan.java index 071bc6f..3595af5 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealIsGreaterThan.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealIsGreaterThan.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -64,4 +64,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealIsLessThan.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealIsLessThan.java similarity index 88% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealIsLessThan.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealIsLessThan.java index 64afd47..55ccc7d 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealIsLessThan.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealIsLessThan.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -64,4 +64,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealIsNegative.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealIsNegative.java similarity index 83% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealIsNegative.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealIsNegative.java index 70ee9b9..53e1f52 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealIsNegative.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealIsNegative.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -44,4 +44,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealMultiplyBy.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealMultiplyBy.java similarity index 88% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealMultiplyBy.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealMultiplyBy.java index 3ac132e..9e56ab0 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealMultiplyBy.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealMultiplyBy.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -73,4 +73,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealSubstract.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealSubstract.java similarity index 88% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealSubstract.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealSubstract.java index 7b78b5e..bb4cd4e 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealSubstract.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealSubstract.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -72,4 +72,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealSum.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealSum.java similarity index 89% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealSum.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealSum.java index 4bc1709..8292c5f 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodRealSum.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodRealSum.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectReal; @@ -72,4 +72,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "x" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodSet.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodSet.java similarity index 82% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodSet.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodSet.java index 16faac9..c03ca3d 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodSet.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodSet.java @@ -1,10 +1,10 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.InterpretedMethod; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.InterpretedMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; /** @@ -60,4 +60,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 2; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "attrName", "obj" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodSetName.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodSetName.java similarity index 70% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodSetName.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodSetName.java index 43e3faa..2ea80c8 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodSetName.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodSetName.java @@ -1,8 +1,8 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; /** @@ -34,20 +34,12 @@ public static ObjectBag rename(ObjectBag ref, String id, StringBuilder msg) final ObjectBag container = ref.getContainer(); final String oldName = ref.getName(); - // Changing name comprises two steps: - // Removing it then adding it again - // (so its own name and the reference pointing to it are in sync) - container.remove( ref.getName() ); - try { - ref.setName( id ); - container.set( ref.getName(), ref ); + container.renameMember( oldName, id ); } catch(InterpretError e) { - ref.setName( oldName ); - container.set( oldName, ref ); - + msg.append( "Error renaming from '" + oldName + "' to: '" + id + "': " ); throw e; } @@ -58,4 +50,9 @@ public static ObjectBag rename(ObjectBag ref, String id, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "objName" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStr.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStr.java similarity index 79% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStr.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStr.java index 2f778c3..b3d0a66 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStr.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStr.java @@ -1,10 +1,10 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; import com.devbaltasarq.pooi.core.evaluables.literals.StrLiteral; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; /** @@ -35,4 +35,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrCharAt.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrCharAt.java similarity index 88% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrCharAt.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrCharAt.java index 1073464..13c3a2c 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrCharAt.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrCharAt.java @@ -1,10 +1,10 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; import com.devbaltasarq.pooi.core.evaluables.literals.StrLiteral; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -69,4 +69,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "pos" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrConcat.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrConcat.java similarity index 88% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrConcat.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrConcat.java index 101694c..92d1693 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrConcat.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrConcat.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -67,4 +67,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "text" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsEmpty.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsEmpty.java similarity index 83% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsEmpty.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsEmpty.java index a211ccd..c2feba8 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsEmpty.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsEmpty.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -48,4 +48,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsEqualTo.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsEqualTo.java similarity index 86% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsEqualTo.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsEqualTo.java index c342a71..6ec7915 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsEqualTo.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsEqualTo.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -59,4 +59,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "text" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsGreaterThan.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsGreaterThan.java similarity index 86% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsGreaterThan.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsGreaterThan.java index 4a129de..774039a 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsGreaterThan.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsGreaterThan.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -59,4 +59,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "text" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsLessThan.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsLessThan.java similarity index 86% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsLessThan.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsLessThan.java index fd233d3..ee5ce76 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsLessThan.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsLessThan.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -59,4 +59,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "text" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsNumber.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsNumber.java similarity index 85% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsNumber.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsNumber.java index 8c1b627..149821e 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrIsNumber.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrIsNumber.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -54,4 +54,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrLeft.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrLeft.java similarity index 89% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrLeft.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrLeft.java index c47f1d9..e2e49a3 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrLeft.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrLeft.java @@ -1,10 +1,10 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; import com.devbaltasarq.pooi.core.evaluables.literals.StrLiteral; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -76,4 +76,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "pos" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrLength.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrLength.java similarity index 83% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrLength.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrLength.java index 8ba0472..7bc1881 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrLength.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrLength.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -43,4 +43,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrMays.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrMays.java similarity index 84% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrMays.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrMays.java index 33433d3..838460f 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrMays.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrMays.java @@ -1,10 +1,10 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; import com.devbaltasarq.pooi.core.evaluables.literals.StrLiteral; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -45,4 +45,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrMins.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrMins.java similarity index 84% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrMins.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrMins.java index 0fac1e6..a665ba7 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrMins.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrMins.java @@ -1,10 +1,10 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; import com.devbaltasarq.pooi.core.evaluables.literals.StrLiteral; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -45,4 +45,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrRight.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrRight.java similarity index 89% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrRight.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrRight.java index e881f7b..e689ac7 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrRight.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrRight.java @@ -1,10 +1,10 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; import com.devbaltasarq.pooi.core.evaluables.literals.StrLiteral; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -80,4 +80,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 1; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "pos" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrSub.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrSub.java similarity index 88% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrSub.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrSub.java index 761a37a..56e8bd7 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrSub.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrSub.java @@ -1,10 +1,10 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; import com.devbaltasarq.pooi.core.evaluables.literals.StrLiteral; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectInt; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -71,4 +71,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 2; } + + @Override + public String[] getFormalParameters() { + return new String[]{ "pos1", "pos2" }; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrToInt.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrToInt.java similarity index 86% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrToInt.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrToInt.java index 6f8cd80..6969dc5 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrToInt.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrToInt.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -56,4 +56,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrToReal.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrToReal.java similarity index 84% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrToReal.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrToReal.java index bb0f851..1af7580 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrToReal.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrToReal.java @@ -1,9 +1,9 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -51,4 +51,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrTrim.java b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrTrim.java similarity index 83% rename from src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrTrim.java rename to src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrTrim.java index b958565..e4d5709 100644 --- a/src/com/devbaltasarq/pooi/core/evaluables/method/nativemethods/NativeMethodStrTrim.java +++ b/src/com/devbaltasarq/pooi/core/evaluables/methods/nativemethods/NativeMethodStrTrim.java @@ -1,10 +1,10 @@ -package com.devbaltasarq.pooi.core.evaluables.method.nativemethods; +package com.devbaltasarq.pooi.core.evaluables.methods.nativemethods; import com.devbaltasarq.pooi.core.Evaluable; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Runtime; import com.devbaltasarq.pooi.core.evaluables.literals.StrLiteral; -import com.devbaltasarq.pooi.core.evaluables.method.NativeMethod; +import com.devbaltasarq.pooi.core.evaluables.methods.NativeMethod; import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectStr; @@ -45,4 +45,9 @@ public ObjectBag doIt(ObjectBag ref, Evaluable[] params, StringBuilder msg) public int getNumParams() { return 0; } + + @Override + public String[] getFormalParameters() { + return new String[ 0 ]; + } } diff --git a/src/com/devbaltasarq/pooi/core/objs/ObjectOs.java b/src/com/devbaltasarq/pooi/core/objs/ObjectOs.java index 1ea4ea1..1ed9d0c 100644 --- a/src/com/devbaltasarq/pooi/core/objs/ObjectOs.java +++ b/src/com/devbaltasarq/pooi/core/objs/ObjectOs.java @@ -1,6 +1,6 @@ package com.devbaltasarq.pooi.core.objs; -import com.devbaltasarq.pooi.core.evaluables.method.nativemethods.NativeMethodOsNow; +import com.devbaltasarq.pooi.core.evaluables.methods.nativemethods.NativeMethodOsNow; import com.devbaltasarq.pooi.core.exceps.InterpretError; /** diff --git a/src/com/devbaltasarq/pooi/core/objs/ObjectParent.java b/src/com/devbaltasarq/pooi/core/objs/ObjectParent.java index 5924b14..a376400 100644 --- a/src/com/devbaltasarq/pooi/core/objs/ObjectParent.java +++ b/src/com/devbaltasarq/pooi/core/objs/ObjectParent.java @@ -10,10 +10,10 @@ package com.devbaltasarq.pooi.core.objs; import com.devbaltasarq.pooi.core.exceps.InterpretError; -import com.devbaltasarq.pooi.core.evaluables.method.nativemethods.NativeMethodStr; +import com.devbaltasarq.pooi.core.evaluables.methods.nativemethods.NativeMethodStr; import com.devbaltasarq.pooi.core.ObjectBag; import com.devbaltasarq.pooi.core.Reserved; -import com.devbaltasarq.pooi.core.evaluables.method.nativemethods.*; +import com.devbaltasarq.pooi.core.evaluables.methods.nativemethods.*; /** * This is "Object" the parent for all objects diff --git a/src/com/devbaltasarq/pooi/res/addAttribute.png b/src/com/devbaltasarq/pooi/res/addAttribute.png index 490ccf84ef8d324a7561d39861b47ff5fc249e5c..ebacbdf344461e036dcefd95161d6175fe679e9d 100644 GIT binary patch delta 397 zcmV;80doGY1hxZ^Gk*bXNkl^oC5ghA47qa*7s%Xi9P@ zq9u$V4UFehGz3P-!y=TRsD_*(Xb}ss%^^w%L8M6tF&h#s%F0f|EB|1cMh7k&F8A^~ z_u~WVlqiafMx(5EzD#zzodCY8Ov+k|7K?>~Ai(eU7kZK;F@Kp%!elZ*r_(8_E}PBf zQfjrTu5dV9b6Km^*8d(3hoe5~Z)qB$HZ0x-Xj(b=J7LQ>NTFTB2uT3o{Sljo)+_wa zbl$O}XN(LjQ@<1>0JtXl2~{6wq&@D>>IqdZCsz;2n1_IxBctQIOvx~$jx98-MZO3F zGBxdEm(gA6uYWcPy;w-o1OP6l3-NOaR;!J`1p+w|&ris|<>aYsw&*|d&D zMcXux*-=D&z{}|()l=I@dApH_1?8#M79?Uf^11J?$UK(ZpN^bx_bgtBL_Tm%+#mq> r-Sado6#cNxLuRh&^oIWLKYRk8kkdXVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi z!~g&e!~vBn4jTXf02y>eSaefwW^{L9a%BK_cXuvnZfkR6VQ^(GZ*pgw?mQX*00ECl zL_t(IPo3W~<>-zxVzAe$VrKf4}$b0i}r5Y9*h~C$cY6GO*cf z1VD{=GFUMw7K;UvBtcOWQ30GzCjx;0WLbt@uTNkpFq_S>uE~Ov)WGZYCOi}kold9j zOX(lj?e^Hgcz;qdh)xsj`W+2_u*E-lM2VGMeBKZaC9E?R%9Z7jwIukkFx+$|^ z_NR_R7+h0fc{|b3BpD_S)QYQHPsp#NzWFs;?>8`AK|Rx(ME+&=$;H&#)=4Kf!r*3m zh>SD5_cL3p;w7T{T`Dmx{nV!m1cNoA8R|`R&AD)q^?!)rt6Y{H!}AW*zdRxI@y3^d zVDL+aL(ob^5zS#U5wfd=AJOanC>6*nOdXP@bRbf^+llG0;-K6nhpIVg59fZYy0?TK zkl8qf4lVCii@m{gG>N633IG5A diff --git a/src/com/devbaltasarq/pooi/res/addMethod.png b/src/com/devbaltasarq/pooi/res/addMethod.png index abdab1454ac0395e84baa24eed120943c868c74e..e695c8f03360de3eab129f4e8cb9a63928d91781 100644 GIT binary patch delta 486 zcmV)1&;)fGk*cbNkll+UOSP+S??LLp2y7 z^@=|@%X{AEJP+r6!6k`ALgjK3FGm&0)K%3mSuI%GMS93)hf|w zlu#&S^cBZqvEN<$Rey@b;-=zYFz9|C>2%ti>)+D+ldEgwEXg!YeUZA;rKT>Jrix$H zPBw7*KtzLua$v%dT!? zAULS0GhyBRAb;ICIUsf%)aYbh`Zz5DM>RfnN*=#o-z1^xBkdc#r(X;ci&r#w zv7i}qziyT!H7xBO$qJzJI->(8@&b5~8dhq)CJ(@BeTAWkTSOz1?DXB|_S|_&Bh8IC zcAfV6+RxnxpVte(*6n`kjRsrjw6Ni_@% delta 600 zcmV-e0;m0t1b_vQGk*X9b5ch_0Itp)=>Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi z!~g&e!~vBn4jTXf02y>eSaefwW^{L9a%BK_cXuvnZfkR6VQ^(GZ*pgw?mQX*00H1h zL_t(IPonEQ6z!g)LeD35!i5wR~mx|-49>q=KS`&r!xz2FzN&6<$1p6dA{d4hZk%R zzu(VvI<2!mG-MD61PDN_qcn?H7oX1um&=7jBB2!^6bd1m&B8QIxZUn!EHz%Q_wdwu z%cibDGMPNKseiT%!%%e%y+JS-JZwBlLk6{JYN!6q3Hu|P|4b7qoA7u%_@Ra0l;9UF z^;4&s%7^vg3A` ztvIVCvdw7cjIWE&*2vlGZN!;N?4O8{>(2?-6%G&HV1KjI$!)0>gV#LYALXZempSrL zl;sC(zZ>V=zy*dZdGKY57q5wtkQnRb*kX=N_BBeyJUU0G5xp~kCqq#@ z9q&edXV=~W3Pn^adn%MZv^X3pK6%=SqGib=9_&j^PNWWWWrlIn>OrSuIcY5KOK_?M z-&a=c9#JXX!_ID5#g&qUa#fy+g$y6X;%cni*Ll87ZmD=_ZjwuzD&#_VkXMIhq#(t} mt7WBa#AAGyDg5t$0Q>^l#zm)l6i^EQ00004nJ@ErkR#;MwT(m+AU64!{5;QX|b^2DN4 zhVt@qz0ADq;^f4FRK5J7^x5xhq=1T^dAc};Soj~EtjpKzAkf;rU;2RsaS%RuDKyA$gt gs@eSiC(W40WV(9qyCVnA0Da8h>FVdQ&MBb@0L9v#KmY&$ diff --git a/src/com/devbaltasarq/pooi/res/copy.png b/src/com/devbaltasarq/pooi/res/copy.png index 77985c950488f9db7bf6316131181ec20bf8a060..e3a9744963c7cf06d2681fd76bce39a504ebba64 100644 GIT binary patch delta 165 zcmV;W09ya30>J^0B!2{RLP=Bz2nYy#2xN!=004MNL_t(Ijm?lT4!|G`15Lw|ncxTc zv^x|!03k3`swF00ENq}kRS97AY^9VaA_TyhmI10t5qZJWfY6%{-$5ZXc2KmAno22e zw#7`pO_ICYOwFA0);6JwpN1eNO|dYaV|9{9%Jt`K<~!M&7z_ TNTN|d00000NkvXXu0mjfA67zy delta 269 zcmX@exPobdN za~60+7BevL9RXp+soH$fKtah8*NBqf{Irtt#G+J&^73-M%)IR43o6Xfa&>X7arQ-m|?g)~^=`)~_|5!nJ0bTkg_pw>ms{dCx7G z64eu^Yr?w0cvj^nCk2I@$&1&oT|8IdP=TyZg@R_`(kX}XJ9?PD>@$?h4{4mU`Ly)6 z1j+dmA9F_WRxfB&UD^Cx);T3K0RREPWdQ&H diff --git a/src/com/devbaltasarq/pooi/res/delete.png b/src/com/devbaltasarq/pooi/res/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..210769c3f9a7b75255841c10a7ecabf4e9cda61f GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfKaSXBO zJ$gxzuf;%s^#cDC=?4~$rU%8tn-4wOAk!3_V8L3RAzJS6c!RHpRrU!r73RBZ9;%zp z-FL2o@t&VZRYK3g+WUgXKR*3u!I!ai{>Gp#h8Dj0``$P2$c_HjoH?t>;(W1ObauVu z?Bln${p~-`^6_TN@xuleVi_hFwjIx$6%>2Dze2`c&fM48HPGhKy4QKf`xqun5jtmC z@qT}+isy!P+NU-h*`%{wT6<3MjOUV09o`44`*ltSgoYN}y?>V7-Rj7U+0T#72Kt4; M)78&qol`;+0Jl&U>cv7h@-A}f&3S>O>_%)r2R1cVuN91E{oa+PtNdz6l<)`?2@0LMEHmkAS3l#v z_mfpTwGSJlOwE{=zAo+tv(M$2*|FD`+MF-{d`#!`H@VZBZX9JSjg9BozcKf=GDC%p z-1gq`DXBAKUF^FzDD@?;i@Q)7tJRgHnk5)0Qn)oi=J;iPX5PaO{xDxSB6qxS#cQi8 z?K?KE(%L55PO literal 0 HcmV?d00001 diff --git a/src/com/devbaltasarq/pooi/ui/Inspector.java b/src/com/devbaltasarq/pooi/ui/Inspector.java index 7d693bc..25cb43c 100644 --- a/src/com/devbaltasarq/pooi/ui/Inspector.java +++ b/src/com/devbaltasarq/pooi/ui/Inspector.java @@ -5,8 +5,11 @@ import com.devbaltasarq.pooi.core.Runtime; import com.devbaltasarq.pooi.core.evaluables.Attribute; import com.devbaltasarq.pooi.core.evaluables.Method; -import com.devbaltasarq.pooi.core.exceps.InterpretError; -import com.devbaltasarq.pooi.core.objs.ValueObject; +import com.devbaltasarq.pooi.core.evaluables.ParentAttribute; +import com.devbaltasarq.pooi.core.evaluables.methods.nativemethods.NativeMethodList; +import com.devbaltasarq.pooi.core.evaluables.methods.nativemethods.NativeMethodStr; +import com.devbaltasarq.pooi.core.objs.ObjectParent; +import com.devbaltasarq.pooi.core.objs.ObjectRoot; import javax.swing.*; import javax.swing.border.EmptyBorder; @@ -16,6 +19,7 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.net.URL; +import java.util.HashSet; /** * Created by Baltasar on 30/04/2016. @@ -24,8 +28,11 @@ public class Inspector extends JDialog { public static final String EtqIconCopy = "com/devbaltasarq/pooi/res/copy.png"; public static final String EtqIconAddMethod = "com/devbaltasarq/pooi/res/addMethod.png"; public static final String EtqIconAddAttribute = "com/devbaltasarq/pooi/res/addAttribute.png"; + public static final String EtqIconExecute = "com/devbaltasarq/pooi/res/execute.png"; + public static final String EtqIconDelete = "com/devbaltasarq/pooi/res/delete.png"; public Inspector(VisualEngine parent, ObjectBag obj) { + this.beingBuilt = true; try { this.rt = Runtime.getRuntime(); this.objRoot = rt.getAbsoluteParent(); @@ -40,6 +47,8 @@ public Inspector(VisualEngine parent, ObjectBag obj) { this.setIconImage( parent.getIconImage() ); this.setFont( this.visualEngine.getFont() ); this.build(); + this.beingBuilt = false; + this.setVisible( true ); } /** Retries icons from jar for future use */ @@ -57,6 +66,12 @@ private void buildIcons() url = this.getClass().getClassLoader().getResource( EtqIconAddAttribute ); this.iconAddAttribute = new ImageIcon( url ); + url = this.getClass().getClassLoader().getResource( EtqIconExecute ); + this.iconExecute = new ImageIcon( url ); + + url = this.getClass().getClassLoader().getResource( EtqIconDelete ); + this.iconDelete = new ImageIcon( url ); + } catch(Exception exc) { this.visualEngine.makeOutput( "\n[WARNING: failed to retrieve icons from jar]\n\n" ); @@ -80,13 +95,7 @@ public void actionPerformed(ActionEvent e) this.add( pnlClose, BorderLayout.PAGE_END ); } - private void buildActionArea() { - // Create a box layout in the center - this.pnlAction = new JPanel(); - JScrollPane scroll = new JScrollPane( this.pnlAction ); - this.pnlAction.setLayout( new BoxLayout( this.pnlAction, BoxLayout.PAGE_AXIS ) ); - this.add( scroll, BorderLayout.CENTER ); - + private void buildBasicAttrsPanel() { // Add panel for object's name JPanel pnlName = new JPanel(); pnlName.setBorder( new EmptyBorder( 10, 10, 10, 10 ) ); @@ -99,16 +108,48 @@ private void buildActionArea() { pnlName.add( edObjectName ); this.pnlAction.add( pnlName ); this.pnlAction.add( Box.createVerticalGlue() ); - edObjectName.addActionListener(new ActionListener() { + this.edObjectName.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { - Inspector.this.visualEngine.execute( - Inspector.this.getObj().getPath() + " rename \"" + edObjectName.getText() + "\""); - Inspector.this.updateObjectName(); + if ( !Inspector.this.beingBuilt ) { + Inspector.this.visualEngine.execute( + Inspector.this.getObj().getPath() + " rename \"" + edObjectName.getText() + "\"" ); + Inspector.this.updateObjectBasicAttributes(); + } } }); - // Add buttons for management + // Add panel for parent attribute + if ( !( this.getObj() instanceof ObjectParent ) ) { + JPanel pnlAttrParent = new JPanel(); + pnlAttrParent.setBorder( new EmptyBorder( 10, 10, 10, 10 ) ); + pnlAttrParent.setLayout( new BoxLayout( pnlAttrParent, BoxLayout.LINE_AXIS ) ); + JLabel lblParentAttributeName = new JLabel( "Parent" ); + this.cbParent = new JComboBox( this.availableObjectsNames ); + ( (JLabel) this.cbParent.getRenderer() ).setHorizontalAlignment( JLabel.RIGHT ); + ( (JTextField) this.cbParent.getEditor().getEditorComponent() ).setHorizontalAlignment( JTextField.RIGHT ); + this.cbParent.setFont( this.visualEngine.getFont() ); + this.cbParent.setEditable( true ); + this.cbParent.getModel().setSelectedItem( this.getObj().getParentObject().getNameOrValueAsString() ); + pnlAttrParent.add( lblParentAttributeName ); + pnlAttrParent.add( Box.createRigidArea( new Dimension( 10, 0 ) ) ); + pnlAttrParent.add( this.cbParent ); + this.pnlAction.add( pnlAttrParent ); + this.pnlAction.add( Box.createVerticalGlue() ); + this.cbParent.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent actionEvent) { + if ( !Inspector.this.beingBuilt ) { + Inspector.this.visualEngine.execute( + Inspector.this.getObj().getPath() + ".parent = " + cbParent.getSelectedItem() ); + Inspector.this.updateObjectBasicAttributes(); + } + } + }); + } + } + + private void buildManagementButtonsPanel() { JPanel pnlButtons = new JPanel(); pnlButtons.setBorder( new EmptyBorder( 10, 10, 10, 10 ) ); pnlButtons.setLayout( new BoxLayout( pnlButtons, BoxLayout.LINE_AXIS ) ); @@ -116,15 +157,12 @@ public void actionPerformed(ActionEvent actionEvent) { btAddAttribute.setToolTipText( "Add attribute" ); JButton btAddMethod = new JButton( this.iconAddMethod ); btAddMethod.setToolTipText( "Add method" ); - JButton btRename = new JButton( "Ren" ); JButton btCopy = new JButton( this.iconCopy ); btCopy.setToolTipText( "Copy this object" ); pnlButtons.add( btAddAttribute ); pnlButtons.add( Box.createHorizontalGlue() ); pnlButtons.add( btAddMethod ); pnlButtons.add( Box.createHorizontalGlue() ); - pnlButtons.add( btRename ); - pnlButtons.add( Box.createHorizontalGlue() ); pnlButtons.add( btCopy ); this.pnlAction.add( pnlButtons ); this.pnlAction.add( Box.createVerticalGlue() ); @@ -132,157 +170,195 @@ public void actionPerformed(ActionEvent actionEvent) { btAddAttribute.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - Inspector.this.addAttribute(); + String attrName = "attr" + ( Inspector.this.getObj().getNumberOfAttributes() + 1 ); + Inspector.this.visualEngine.execute( getObj().getPath() + "." + attrName + " = 0" ); + Inspector.this.addAttributePanel( getObj().lookUpAttribute( attrName ) ); + Inspector.this.pack(); } } ); btAddMethod.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - Inspector.this.addMethod(); + String mthName = "mth" + ( Inspector.this.getObj().getNumberOfMethods() + 1 ); + Inspector.this.visualEngine.execute( getObj().getPath() + "." + mthName + " = {:}" ); + Inspector.this.addMethodPanel( getObj().localLookUpMethod( mthName ) ); + Inspector.this.pack(); } } ); - btRename.addActionListener( new ActionListener() { + btCopy.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - Inspector.this.renameObject(); + Inspector.this.copyObject(); } } ); + } - btCopy.addActionListener( new ActionListener() { + private void addAttributePanel(Attribute attr) { + ObjectBag objDest = attr.getReference(); + JPanel panel = new JPanel(); + panel.setBorder(new EmptyBorder( 10, 10, 10, 10 ) ); + panel.setLayout( new BoxLayout( panel, BoxLayout.LINE_AXIS ) ); + + JButton btDelete = new JButton( this.iconDelete ); + btDelete.setToolTipText( "Delete attribute" ); + JComboBox cbContents = new JComboBox( this.availableObjectsNames ); + ( (JLabel) cbContents.getRenderer() ).setHorizontalAlignment( JLabel.RIGHT ); + ( (JTextField) cbContents.getEditor().getEditorComponent() ).setHorizontalAlignment( JTextField.RIGHT ); + cbContents.setFont( this.visualEngine.getFont() ); + cbContents.setEditable( true ); + cbContents.getModel().setSelectedItem( objDest.getNameOrValueAsString() ); + JTextField edName = new JTextField( attr.getName() ); + + panel.add( btDelete ); + panel.add( Box.createRigidArea( new Dimension( 10, 0 ) ) ); + panel.add( edName ); + panel.add( Box.createRigidArea( new Dimension( 10, 0 ) ) ); + panel.add( cbContents ); + this.pnlAttributes.add( panel ); + this.pnlAttributes.add( Box.createVerticalGlue() ); + + edName.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - Inspector.this.copyObject(); + if ( !Inspector.this.beingBuilt ) { + Inspector.this.visualEngine.execute( getObj().getPath() + + "." + attr.getName() + " rename \"" + edName.getText() + "\"" ); + edName.setText( attr.getName() ); + } } } ); - // Add controls for each attribute - final Attribute[] attrs = this.rt.getRoot().getAttributes(); - final String[] objsNames = new String[ attrs.length ]; - for(int i = 0; i < attrs.length; ++i) { - objsNames[ i ] = attrs[ i ].getName(); - } - - for(Attribute atr: this.getObj().getAttributes()) { - ObjectBag objDest = atr.getReference(); - JPanel panel = new JPanel(); - panel.setBorder(new EmptyBorder( 10, 10, 10, 10 ) ); - panel.setLayout( new BoxLayout( panel, BoxLayout.LINE_AXIS ) ); - JComboBox cbContents = new JComboBox( objsNames ); - ( (JLabel)cbContents.getRenderer() ).setHorizontalAlignment( JLabel.RIGHT ); - cbContents.setFont( this.visualEngine.getFont() ); - cbContents.setEditable( true ); - cbContents.getModel().setSelectedItem( objDest.getNameOrValueAsString() ); - JLabel lblName = new JLabel( atr.getName() ); - - panel.add( lblName ); - panel.add( Box.createRigidArea( new Dimension( 10, 0 ) ) ); - panel.add( cbContents ); - this.pnlAction.add( panel ); - this.pnlAction.add( Box.createVerticalGlue() ); - lblName.addMouseListener(new MouseListener() { - @Override - public void mouseClicked(MouseEvent mouseEvent) { + cbContents.addActionListener( new ActionListener() { + @Override + public void actionPerformed(ActionEvent evt) { + if ( !Inspector.this.beingBuilt ) { + visualEngine.execute( obj.getPath() + "." + edName.getText() + " = " + cbContents.getModel().getSelectedItem() ); + } + } + } ); + btDelete.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent actionEvent) { + if ( !Inspector.this.beingBuilt ) { + visualEngine.execute( obj.getPath() + " erase \"" + attr.getName() + "\"" ); + pnlAttributes.remove( panel ); + Inspector.this.pack(); } + } + }); + } - @Override - public void mousePressed(MouseEvent mouseEvent) { + private void buildAttributesManagementPanel() { + HashSet attrIds = new HashSet<>( this.getObj().getNumberOfMethods() ); - } - @Override - public void mouseReleased(MouseEvent mouseEvent) { - Inspector.this.launchFieldInspection( atr.getName() ); - } + this.pnlAttributes = new JPanel(); + JScrollPane scroll = new JScrollPane( this.pnlAttributes ); + this.pnlAttributes.setLayout( new BoxLayout( this.pnlAttributes, BoxLayout.PAGE_AXIS ) ); + this.pnlAction.add( scroll ); + this.pnlAction.add( Box.createVerticalGlue() ); - @Override - public void mouseEntered(MouseEvent mouseEvent) { + for(Attribute attr: this.getObj().getAttributes()) { + if ( attr instanceof ParentAttribute ) { + continue; + } + + String attrName = attr.getName(); + if ( attrIds.contains( attrName ) ) { + continue; + } else { + attrIds.add( attrName ); + } + + this.addAttributePanel( attr ); + } + } + + private void addMethodPanel(Method mth) { + String mthName = mth.getName(); + JPanel panel = new JPanel(); + panel.setBorder( new EmptyBorder( 10, 10, 10, 10 ) ); + panel.setLayout( new BoxLayout( panel, BoxLayout.LINE_AXIS ) ); + + JButton btDelete = new JButton( this.iconDelete ); + btDelete.setToolTipText( "Delete method" ); + JButton btExecute = new JButton( this.iconExecute ); + btExecute.setToolTipText( "Execute method" ); + JTextField edName = new JTextField( mthName ); + JTextField edContents = new JTextField( mth.getMethodBodyAsString() ); + edContents.setHorizontalAlignment( JTextField.RIGHT ); + panel.add( btExecute ); + panel.add( Box.createRigidArea( new Dimension( 10, 0 ) ) ); + panel.add( btDelete ); + panel.add( Box.createRigidArea( new Dimension( 10, 0 ) ) ); + panel.add( edName ); + panel.add( Box.createRigidArea( new Dimension( 10, 0 ) ) ); + panel.add( edContents ); + this.pnlMethods.add( panel ); + this.pnlMethods.add( Box.createVerticalGlue() ); + + edName.addActionListener( new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if ( !Inspector.this.beingBuilt ) { + //Inspector.this.visualEngine.execute( getObj().getPath() + "." + edName.getText() + " = " ); } + } + } ); - @Override - public void mouseExited(MouseEvent mouseEvent) { + edContents.addActionListener( new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + if ( !Inspector.this.beingBuilt ) { + visualEngine.execute( getObj().getPath() + "." + edName.getText() + " = " + edContents.getText() ); + } + } + } ); + btExecute.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent actionEvent) { + if ( !Inspector.this.beingBuilt ) { + Inspector.this.launchMethodExecution( mth.getName() ); } - }); + } + }); - cbContents.addActionListener( new ActionListener() { - @Override - public void actionPerformed(ActionEvent evt) { - visualEngine.execute( obj.getPath() + "." + lblName.getText() + " = " + (String) cbContents.getModel().getSelectedItem() ); + btDelete.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent actionEvent) { + if ( !Inspector.this.beingBuilt ) { + visualEngine.execute( obj.getPath() + " erase \"" + mth.getName() + "\"" ); + pnlAttributes.remove( panel ); + Inspector.this.pack(); } - } ); - } + } + }); + } + + private void buildMethodsManagementPanel() { + this.pnlMethods = new JPanel(); + JScrollPane scroll = new JScrollPane( this.pnlMethods ); + this.pnlMethods.setLayout( new BoxLayout( this.pnlMethods, BoxLayout.PAGE_AXIS ) ); + this.pnlAction.add( scroll ); + this.pnlAction.add( Box.createVerticalGlue() ); - // Add controls for each local method, as well as inherited ones + HashSet mthIds = new HashSet<>( this.getObj().getNumberOfMethods() ); ObjectBag obj = this.getObj(); do { for (Method mth : obj.getLocalMethods()) { - JPanel panel = new JPanel(); - panel.setBorder( new EmptyBorder( 10, 10, 10, 10 ) ); - panel.setLayout( new BoxLayout( panel, BoxLayout.LINE_AXIS ) ); - JLabel lblName = new JLabel( mth.getName() + "()" ); - JTextField edContents = new JTextField( mth.getMethodBodyAsString() ); - edContents.setHorizontalAlignment( JTextField.RIGHT ); - panel.add( lblName ); - panel.add( Box.createRigidArea( new Dimension( 10, 0 ) ) ); - panel.add( edContents ); - this.pnlAction.add( panel ); - this.pnlAction.add( Box.createVerticalGlue() ); - lblName.addMouseListener( new MouseListener() { - @Override - public void mouseClicked(MouseEvent mouseEvent) { - - } - - @Override - public void mousePressed(MouseEvent mouseEvent) { - - } - - @Override - public void mouseReleased(MouseEvent mouseEvent) { - Inspector.this.launchMethodExecution( lblName.getText() ); - } - - @Override - public void mouseEntered(MouseEvent mouseEvent) { - - } - - @Override - public void mouseExited(MouseEvent mouseEvent) { - - } - } ); - - edContents.addMouseListener( new MouseListener() { - @Override - public void mouseClicked(MouseEvent e) { - - } - - @Override - public void mousePressed(MouseEvent e) { - - } + String mthName = mth.getName(); - @Override - public void mouseReleased(MouseEvent e) { - Inspector.this.changeMethod( lblName.getText(), edContents.getText() ); - } - - @Override - public void mouseEntered(MouseEvent e) { - - } - - @Override - public void mouseExited(MouseEvent e) { + if ( mthIds.contains( mthName ) ) { + continue; + } else { + mthIds.add( mthName ); + } - } - } ); + this.addMethodPanel( mth ); } obj = obj.getParentObject(); @@ -290,39 +366,63 @@ public void mouseExited(MouseEvent e) { && obj != null ); } + private void buildActionArea() { + // Create a box layout in the center + this.pnlAction = new JPanel(); + JScrollPane scroll = new JScrollPane( this.pnlAction ); + this.pnlAction.setLayout( new BoxLayout( this.pnlAction, BoxLayout.PAGE_AXIS ) ); + this.add( scroll, BorderLayout.CENTER ); + + this.buildBasicAttrsPanel(); + this.buildManagementButtonsPanel(); + this.buildAttributesManagementPanel(); + this.buildMethodsManagementPanel(); + } + private void build() { + this.prepareAvailableObjectsNames(); + + // Build this.setLayout( new BorderLayout( 5, 5 ) ); - this.setLocationByPlatform( true ); this.buildIcons(); this.buildCloseButton(); this.buildActionArea(); + // Configure this.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE ); - this.setMinimumSize( new Dimension( 300, 200 ) ); this.setModal( true ); this.pack(); - this.updateObjectName(); - this.setVisible( true ); - } + this.updateObjectBasicAttributes(); + this.setMinimumSize( new Dimension( 300, 200 ) ); - private void updateObjectName() { - this.setTitle( this.getObj().getPath() + " - Inspector" ); - this.edObjectName.setText( this.getObj().getName() ); + // Resize and put it in its location + Point p = new Point( this.visualEngine.getLocation() ); + p.x += ( this.visualEngine.getWidth() - this.getWidth() ) / 2; + p.y += ( this.visualEngine.getHeight() - this.getHeight() ) / 2; + this.setLocation( p ); } - private void launchFieldInspection(String id) { - visualEngine.execute( this.obj.getPath() + "." + id ); - } + private void updateObjectBasicAttributes() { + ObjectBag obj = this.getObj(); + ObjectBag objParent = this.getObj().getParentObject(); + + if ( obj != null ) { + this.setTitle( this.getObj().getPath() + " - Inspector" ); + this.edObjectName.setText( this.getObj().getName() ); + } else { + this.setTitle( "Inspector" ); + } - private void addAttribute() { - addAttribute( this, this.visualEngine, this.getObj() ); - this.setVisible( false ); + if ( objParent != null + && !( obj instanceof ObjectParent ) ) + { + this.cbParent.setSelectedItem( objParent.getName() ); + } } private void launchMethodExecution(String methodName) { String arguments = ""; - methodName = methodName.substring( 0, methodName.length() - 2 ); Method mth = this.getObj().lookUpMethod( methodName ); if ( mth.getNumParams() > 0 ) { @@ -345,35 +445,8 @@ private void launchMethodExecution(String methodName) } } - private void addMethod() { - addMethod( this, this.visualEngine, this.getObj() ); - } - - private void changeMethod(String methodName, String body) { - changeMethod( this, this.visualEngine, this.getObj(), methodName, body ); - this.setVisible( false ); - } - - private void renameObject() { - String newName = (String) JOptionPane.showInputDialog( - this, - "New object's name:", - AppInfo.Name, - JOptionPane.PLAIN_MESSAGE, - null, - null, - "x" ); - - if ( newName != null ) { - newName = newName.trim(); - if ( newName.length() > 0 ) { - visualEngine.execute( obj.getPath() + " rename \"" + newName + '\"' ); - this.setVisible( false ); - } - } - } - - private void copyObject() { + private void copyObject() + { String newName = (String) JOptionPane.showInputDialog( this, "New object's name:", @@ -381,7 +454,7 @@ private void copyObject() { JOptionPane.PLAIN_MESSAGE, null, null, - "x" ); + "obj" + ( visualEngine.getInterpreter().getRuntime().getRoot().getNumberOfAttributes() + 1 ) ); if ( newName != null ) { newName = newName.trim(); @@ -423,7 +496,7 @@ public static void addMethod(Window frame, VisualEngine visualEngine, ObjectBag JOptionPane.PLAIN_MESSAGE, null, null, - "x" ); + "f" ); if ( mthName != null ) { mthName = mthName.trim(); @@ -457,15 +530,32 @@ public static void changeMethod(Window frame, VisualEngine visualEngine, ObjectB return; } + public String[] prepareAvailableObjectsNames() { + final Attribute[] attrs = this.rt.getRoot().getAttributes(); + this.availableObjectsNames = new String[ attrs.length ]; + for(int i = 0; i < attrs.length; ++i) { + this.availableObjectsNames[ i ] = attrs[ i ].getName(); + } + + return this.availableObjectsNames; + } + private ObjectBag obj; private Runtime rt; private ObjectBag objRoot; + private String[] availableObjectsNames; + private Boolean beingBuilt; private JButton btClose; private JTextField edObjectName; + private JComboBox cbParent; private JPanel pnlAction; + private JPanel pnlAttributes; + private JPanel pnlMethods; private ImageIcon iconCopy; private ImageIcon iconAddMethod; private ImageIcon iconAddAttribute; + private ImageIcon iconDelete; + private ImageIcon iconExecute; private VisualEngine visualEngine; } diff --git a/src/com/devbaltasarq/pooi/ui/VisualEngine.java b/src/com/devbaltasarq/pooi/ui/VisualEngine.java index 9e56fce..c2779f4 100644 --- a/src/com/devbaltasarq/pooi/ui/VisualEngine.java +++ b/src/com/devbaltasarq/pooi/ui/VisualEngine.java @@ -9,6 +9,7 @@ import com.devbaltasarq.pooi.core.exceps.InterpretError; import com.devbaltasarq.pooi.core.objs.ObjectRoot; import com.devbaltasarq.pooi.core.objs.SysObject; +import com.sun.deploy.config.Platform; import javax.swing.*; import javax.swing.event.TreeSelectionEvent; @@ -19,6 +20,7 @@ import javax.swing.tree.TreePath; import java.awt.*; import java.awt.event.*; +import java.io.File; import java.net.URL; import java.util.HashMap; import java.util.HashSet; @@ -43,6 +45,7 @@ public class VisualEngine extends JFrame { /** Creates new form VisualEngine */ public VisualEngine() { + this.currentDir = new File( Platform.get().getUserHome() ); this.build(); this.input.requestFocusInWindow(); } @@ -599,10 +602,13 @@ private void onLoadSession() "Transcript text files", "txt" ); fileSelector.setFileFilter( filter ); + fileSelector.setCurrentDirectory( this.currentDir ); // Show if ( fileSelector.showOpenDialog(this) == JFileChooser.APPROVE_OPTION ) { + this.currentDir = fileSelector.getCurrentDirectory(); + // Load output.append( "\n" + interpreter.loadSession( fileSelector.getSelectedFile().getAbsolutePath() ) @@ -627,10 +633,12 @@ private void onSaveTranscript() new FileNameExtensionFilter( "Transcript text files", "txt" ); - fileSelector.setFileFilter( filter ); + fileSelector.setFileFilter( filter ); + fileSelector.setCurrentDirectory( this.currentDir ); // Show if ( fileSelector.showSaveDialog( this ) == JFileChooser.APPROVE_OPTION ) { + this.currentDir = fileSelector.getCurrentDirectory(); interpreter.activateTranscript( fileSelector.getSelectedFile().getAbsolutePath() ); @@ -811,7 +819,7 @@ private void onNewObject(String objPath) { JOptionPane.PLAIN_MESSAGE, this.iconNew, null, - "obj" ); + "obj" + ( this.getInterpreter().getRuntime().getRoot().getNumberOfAttributes() + 1 ) ); if ( s != null ) { this.createNewObject( objPath, s ); @@ -1043,6 +1051,10 @@ public void makeOutput(String msg) { this.output.append( msg ); } + + public Interpreter getInterpreter() { + return this.interpreter; + } private JDialog dlgFont; private JComboBox input; @@ -1067,4 +1079,5 @@ public void makeOutput(String msg) private Interpreter interpreter = null; private static boolean rebuildingTree = false; + private File currentDir; }