Skip to content

Commit

Permalink
Merge pull request #2 from NetLogo/string-list-functions
Browse files Browse the repository at this point in the history
Added to-list and from-list
  • Loading branch information
TheBizzle committed Nov 5, 2014
2 parents aab2ae0 + 28bd015 commit 8a9a3cf
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 0 deletions.
31 changes: 31 additions & 0 deletions src/FromList.java
@@ -0,0 +1,31 @@
package org.nlogo.extensions.string;

import org.nlogo.api.Argument;
import org.nlogo.api.Context;
import org.nlogo.api.DefaultReporter;
import org.nlogo.api.ExtensionException;
import org.nlogo.api.LogoException;
import org.nlogo.api.Syntax;
import org.nlogo.api.LogoListBuilder;
import org.nlogo.api.LogoList;

public class FromList extends DefaultReporter{

@Override
public Syntax getSyntax(){
return Syntax.reporterSyntax(new int[] { Syntax.ListType() },
Syntax.StringType());
}

@Override
public Object report(Argument[] arg0, Context arg1)
throws ExtensionException, LogoException {
LogoList input = arg0[0].getList();
StringBuilder sb = new StringBuilder();
for (Object o : input){
sb.append(String.valueOf(o));
}
return sb.toString();
}

}
2 changes: 2 additions & 0 deletions src/StringExtension.java
Expand Up @@ -20,5 +20,7 @@ public void load ( PrimitiveManager pM )
pM.addPrimitive ( "starts-with?", new StartsWith () ) ;
pM.addPrimitive ( "trim", new Trim () ) ;
pM.addPrimitive ( "upper-case", new UpperCase () ) ;
pM.addPrimitive ( "from-list", new FromList() ) ;
pM.addPrimitive ( "to-list", new ToList() );
}
}
35 changes: 35 additions & 0 deletions src/ToList.java
@@ -0,0 +1,35 @@
package org.nlogo.extensions.string;

import org.nlogo.api.Argument;
import org.nlogo.api.Context;
import org.nlogo.api.DefaultReporter;
import org.nlogo.api.ExtensionException;
import org.nlogo.api.LogoException;
import org.nlogo.api.Syntax;
import org.nlogo.api.LogoListBuilder;
import org.nlogo.api.LogoList;

public class ToList extends DefaultReporter{

@Override
public Syntax getSyntax(){
return Syntax.reporterSyntax(
// we take in a string
new int[] { Syntax.StringType() },
// and return a list
Syntax.ListType());
}

@Override
public Object report(Argument[] arg0, Context arg1)
throws ExtensionException, LogoException {
String input = arg0[0].getString();
LogoListBuilder myLLB = new LogoListBuilder();
for (char c : input.toCharArray()){
myLLB.add(String.valueOf(c));
}
return myLLB.toLogoList();
}

}

0 comments on commit 8a9a3cf

Please sign in to comment.