mirror of
https://github.com/twiglet/cs2j.git
synced 2025-01-18 13:15:17 +01:00
Add Rustici trunk branch, synched to rev r13498
This commit is contained in:
parent
b8dffaab5b
commit
ff8ef87f54
@ -2,7 +2,6 @@
|
|||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="src" path="src"/>
|
<classpathentry kind="src" path="src"/>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/commons-lang-2.4.jar"/>
|
<classpathentry kind="lib" path="lib/commons-lang-2.4.jar"/>
|
||||||
<classpathentry exported="true" kind="lib" path="lib/commons-codec-1.4.jar"/>
|
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
@ -16,5 +16,10 @@
|
|||||||
<Name>Name</Name>
|
<Name>Name</Name>
|
||||||
<Get>${this}.getName()</Get>
|
<Get>${this}.getName()</Get>
|
||||||
</Property>
|
</Property>
|
||||||
|
<Property>
|
||||||
|
<Type>System.Boolean</Type>
|
||||||
|
<Name>IsDirectory</Name>
|
||||||
|
<Get>${this}.isDirectory()</Get>
|
||||||
|
</Property>
|
||||||
</Properties>
|
</Properties>
|
||||||
</Class>
|
</Class>
|
@ -20,17 +20,6 @@
|
|||||||
<Name>TrueString</Name>
|
<Name>TrueString</Name>
|
||||||
<Get>"True"</Get>
|
<Get>"True"</Get>
|
||||||
</Property>
|
</Property>
|
||||||
<!-- C# 2.0 nullable value types -->
|
|
||||||
<Property>
|
|
||||||
<Type>System.Boolean</Type>
|
|
||||||
<Name>HasValue</Name>
|
|
||||||
<Get>${this} != null</Get>
|
|
||||||
</Property>
|
|
||||||
<Property>
|
|
||||||
<Type>System.Boolean</Type>
|
|
||||||
<Name>Value</Name>
|
|
||||||
<Get>${this}</Get>
|
|
||||||
</Property>
|
|
||||||
</Properties>
|
</Properties>
|
||||||
<Methods>
|
<Methods>
|
||||||
<Method>
|
<Method>
|
||||||
|
@ -50,17 +50,6 @@
|
|||||||
<Java>Character.isLetter(${ch})</Java>
|
<Java>Character.isLetter(${ch})</Java>
|
||||||
</Method>
|
</Method>
|
||||||
<Method>
|
<Method>
|
||||||
<Return>System.Boolean</Return>
|
|
||||||
<Name>IsLetterOrDigit</Name>
|
|
||||||
<Params>
|
|
||||||
<Param>
|
|
||||||
<Type>System.Char</Type>
|
|
||||||
<Name>ch</Name>
|
|
||||||
</Param>
|
|
||||||
</Params>
|
|
||||||
<Java>Character.isLetterOrDigit(${ch})</Java>
|
|
||||||
</Method>
|
|
||||||
<Method>
|
|
||||||
<Return>System.Boolean</Return>
|
<Return>System.Boolean</Return>
|
||||||
<Name>IsUpper</Name>
|
<Name>IsUpper</Name>
|
||||||
<Params>
|
<Params>
|
||||||
|
@ -14,34 +14,6 @@
|
|||||||
</Property>
|
</Property>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Methods>
|
<Methods>
|
||||||
<Method>
|
|
||||||
<Return>System.Byte[]</Return>
|
|
||||||
<Name>FromBase64String</Name>
|
|
||||||
<Params>
|
|
||||||
<Param>
|
|
||||||
<Type>System.String</Type>
|
|
||||||
<Name>s</Name>
|
|
||||||
</Param>
|
|
||||||
</Params>
|
|
||||||
<Imports>
|
|
||||||
<Import>org.apache.commons.codec.binary.Base64</Import>
|
|
||||||
</Imports>
|
|
||||||
<Java>Base64.decodeBase64(${s})</Java>
|
|
||||||
</Method>
|
|
||||||
<Method>
|
|
||||||
<Return>System.String</Return>
|
|
||||||
<Name>ToBase64String</Name>
|
|
||||||
<Params>
|
|
||||||
<Param>
|
|
||||||
<Type>System.Byte[]</Type>
|
|
||||||
<Name>inArray</Name>
|
|
||||||
</Param>
|
|
||||||
</Params>
|
|
||||||
<Imports>
|
|
||||||
<Import>org.apache.commons.codec.binary.Base64</Import>
|
|
||||||
</Imports>
|
|
||||||
<Java>Base64.encodeBase64String(${inArray})</Java>
|
|
||||||
</Method>
|
|
||||||
<Method>
|
<Method>
|
||||||
<Return>System.Boolean</Return>
|
<Return>System.Boolean</Return>
|
||||||
<Name>ToBoolean</Name>
|
<Name>ToBoolean</Name>
|
||||||
|
@ -67,10 +67,9 @@
|
|||||||
</Params>
|
</Params>
|
||||||
<Imports>
|
<Imports>
|
||||||
<Import>RusticiSoftware.System.IO.StreamReader</Import>
|
<Import>RusticiSoftware.System.IO.StreamReader</Import>
|
||||||
<Import>RusticiSoftware.System.Text.EncodingSupport</Import>
|
|
||||||
<Import>java.io.*</Import>
|
<Import>java.io.*</Import>
|
||||||
</Imports>
|
</Imports>
|
||||||
<Java>new BufferedReader(StreamReader.make(new BufferedInputStream(${stream}), new EncodingSupport("UTF-8")))</Java>
|
<Java>new BufferedReader(StreamReader.make(new BufferedInputStream(${stream}), "UTF-8"))</Java>
|
||||||
</Constructor>
|
</Constructor>
|
||||||
</Constructors>
|
</Constructors>
|
||||||
<Methods>
|
<Methods>
|
||||||
|
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:noNamespaceSchemaLocation="file://C:/Documents%20and%20Settings/kevin.glynn/My%20Documents/CS2JLibrary/Translation.xsd"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||||
|
<Name>System.Net.Mail.MailAddressCollection</Name>
|
||||||
|
<Properties>
|
||||||
|
<Property>
|
||||||
|
<!-- tried inheriting from ICollection and moving this definition there, didn't work so just
|
||||||
|
copying this from IDictionary -->
|
||||||
|
<Type>System.Int32</Type>
|
||||||
|
<Name>Count</Name>
|
||||||
|
<Get>${this}.size()</Get>
|
||||||
|
</Property>
|
||||||
|
</Properties>
|
||||||
|
</Class>
|
@ -20,20 +20,6 @@
|
|||||||
</Imports>
|
</Imports>
|
||||||
<Java>NumberFormat.getInstance(${provider}).format(${this})</Java>
|
<Java>NumberFormat.getInstance(${provider}).format(${this})</Java>
|
||||||
</Method>
|
</Method>
|
||||||
<Method>
|
|
||||||
<Return>System.String</Return>
|
|
||||||
<Name>ToString</Name>
|
|
||||||
<Params>
|
|
||||||
<Param>
|
|
||||||
<Type>System.String</Type>
|
|
||||||
<Name>format</Name>
|
|
||||||
</Param>
|
|
||||||
</Params>
|
|
||||||
<Imports>
|
|
||||||
<Import>RusticiSoftware.System.NumberSupport</Import>
|
|
||||||
</Imports>
|
|
||||||
<Java>NumberSupport.format(${this}, ${format})</Java>
|
|
||||||
</Method>
|
|
||||||
</Methods>
|
</Methods>
|
||||||
<Casts>
|
<Casts>
|
||||||
</Casts>
|
</Casts>
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Class xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:noNamespaceSchemaLocation="file://C:/Documents%20and%20Settings/kevin.glynn/My%20Documents/CS2JLibrary/Translation.xsd"
|
|
||||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<Name>System.Security.Cryptography.X509Certificates.X509Certificate2</Name>
|
|
||||||
<Inherits>
|
|
||||||
<Type>System.Security.Cryptography.X509Certificates.X509Certificate</Type>
|
|
||||||
</Inherits>
|
|
||||||
<Java>X509Certificate</Java>
|
|
||||||
<Imports>
|
|
||||||
<Import>java.security.cert.X509Certificate</Import>
|
|
||||||
</Imports>
|
|
||||||
<Constructors>
|
|
||||||
<!-- <Constructor>-->
|
|
||||||
<!-- <Params>-->
|
|
||||||
<!-- <Param>-->
|
|
||||||
<!-- <Name>filename</Name>-->
|
|
||||||
<!-- <Type>System.String</Type>-->
|
|
||||||
<!-- </Param>-->
|
|
||||||
<!-- <Param>-->
|
|
||||||
<!-- <Name>password</Name>-->
|
|
||||||
<!-- <Type>System.String</Type>-->
|
|
||||||
<!-- </Param>-->
|
|
||||||
<!-- </Params>-->
|
|
||||||
<!-- <Imports>-->
|
|
||||||
<!-- <Import>java.security.cert.X509Certificate</Import>-->
|
|
||||||
<!-- </Imports>-->
|
|
||||||
<!-- <Java>new GregorianCalendar(${year}, ${month}-1, ${day}).getTime()</Java>-->
|
|
||||||
<!-- </Constructor>-->
|
|
||||||
</Constructors>
|
|
||||||
<Properties>
|
|
||||||
</Properties>
|
|
||||||
<Methods>
|
|
||||||
</Methods>
|
|
||||||
</Class>
|
|
@ -14,19 +14,16 @@
|
|||||||
<Constructors>
|
<Constructors>
|
||||||
<Constructor>
|
<Constructor>
|
||||||
<Params>
|
<Params>
|
||||||
<Param>
|
|
||||||
<Name>char</Name>
|
|
||||||
<Type>System.Char</Type>
|
|
||||||
</Param>
|
|
||||||
<Param>
|
<Param>
|
||||||
<Name>length</Name>
|
<Name>length</Name>
|
||||||
<Type>System.Int32</Type>
|
<Type>System.Int32</Type>
|
||||||
</Param>
|
</Param>
|
||||||
|
<Param>
|
||||||
|
<Name>char</Name>
|
||||||
|
<Type>System.Char</Type>
|
||||||
|
</Param>
|
||||||
</Params>
|
</Params>
|
||||||
<Imports>
|
<Java>new String(${length}, ${char}) /* FIX ME */</Java>
|
||||||
<Import>RusticiSoftware.System.StringSupport</Import>
|
|
||||||
</Imports>
|
|
||||||
<Java>StringSupport.mkString(${char}, ${length})</Java>
|
|
||||||
</Constructor>
|
</Constructor>
|
||||||
<Constructor>
|
<Constructor>
|
||||||
<Params>
|
<Params>
|
||||||
|
@ -9,23 +9,9 @@
|
|||||||
<Property>
|
<Property>
|
||||||
<Name>UTF8</Name>
|
<Name>UTF8</Name>
|
||||||
<Type>System.Text.Encoding</Type>
|
<Type>System.Text.Encoding</Type>
|
||||||
<Get>(new EncodingSupport("UTF-8"))</Get>
|
<Get>"UTF-8"</Get>
|
||||||
<Imports>
|
|
||||||
<Import>RusticiSoftware.System.Text.EncodingSupport</Import>
|
|
||||||
</Imports>
|
|
||||||
</Property>
|
</Property>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Methods>
|
<Methods>
|
||||||
<Method>
|
|
||||||
<Return>System.Byte[]</Return>
|
|
||||||
<Name>GetBytes</Name>
|
|
||||||
<Params>
|
|
||||||
<Param>
|
|
||||||
<Type>System.String</Type>
|
|
||||||
<Name>s</Name>
|
|
||||||
</Param>
|
|
||||||
</Params>
|
|
||||||
<Java>${this}.getBytes(${s})</Java>
|
|
||||||
</Method>
|
|
||||||
</Methods>
|
</Methods>
|
||||||
</Class>
|
</Class>
|
||||||
|
@ -24,16 +24,7 @@
|
|||||||
<Name>Length</Name>
|
<Name>Length</Name>
|
||||||
<Type>System.Int32</Type>
|
<Type>System.Int32</Type>
|
||||||
<Get>${this}.length()</Get>
|
<Get>${this}.length()</Get>
|
||||||
<Set>StringBuilderSupport.setLength(${this}, ${value})</Set>
|
<Set>${this}.setlength(${value})</Set>
|
||||||
<Imports>
|
|
||||||
<Import>RusticiSoftware.System.Text.StringBuilderSupport</Import>
|
|
||||||
</Imports>
|
|
||||||
</Property>
|
|
||||||
<Property>
|
|
||||||
<Name>Capacity</Name>
|
|
||||||
<Type>System.Int32</Type>
|
|
||||||
<Get>${this}.capacity()</Get>
|
|
||||||
<Set>${this}.ensureCapacity(${value})</Set>
|
|
||||||
</Property>
|
</Property>
|
||||||
</Properties>
|
</Properties>
|
||||||
<Methods>
|
<Methods>
|
||||||
@ -59,20 +50,6 @@
|
|||||||
</Params>
|
</Params>
|
||||||
<Java>${this}.append((${arg}) + System.getProperty("line.separator"))</Java>
|
<Java>${this}.append((${arg}) + System.getProperty("line.separator"))</Java>
|
||||||
</Method>
|
</Method>
|
||||||
<Method>
|
|
||||||
<Return>System.Int32</Return>
|
|
||||||
<Name>EnsureCapacity</Name>
|
|
||||||
<Params>
|
|
||||||
<Param>
|
|
||||||
<Name>arg</Name>
|
|
||||||
<Type>System.Int32</Type>
|
|
||||||
</Param>
|
|
||||||
</Params>
|
|
||||||
<Imports>
|
|
||||||
<Import>RusticiSoftware.System.Text.StringBuilderSupport</Import>
|
|
||||||
</Imports>
|
|
||||||
<Java>StringBuilderSupport.ensureCapacity(${this}, ${arg})</Java>
|
|
||||||
</Method>
|
|
||||||
<Method>
|
<Method>
|
||||||
<Return>System.Text.StringBuilder</Return>
|
<Return>System.Text.StringBuilder</Return>
|
||||||
<Name>Insert</Name>
|
<Name>Insert</Name>
|
||||||
|
@ -6,4 +6,4 @@ classes.dir=${build.dir}/classes
|
|||||||
jar.dir=${build.dir}/jar
|
jar.dir=${build.dir}/jar
|
||||||
zip.dir=${build.dir}/zip
|
zip.dir=${build.dir}/zip
|
||||||
java.target.vm=1.5
|
java.target.vm=1.5
|
||||||
|
src.zip=${zip.dir}/cs2jlibrary-src.zip
|
@ -50,10 +50,6 @@
|
|||||||
|
|
||||||
<target name="src" description="Make a source distribution">
|
<target name="src" description="Make a source distribution">
|
||||||
<mkdir dir="${zip.dir}" />
|
<mkdir dir="${zip.dir}" />
|
||||||
<exec executable="git" outputproperty="build.version">
|
|
||||||
<arg line="describe"/>
|
|
||||||
</exec>
|
|
||||||
<property name="src.zip" value="${zip.dir}/cs2jlibrary-src-${build.version}.zip"/>
|
|
||||||
<zip destfile="${src.zip}">
|
<zip destfile="${src.zip}">
|
||||||
<fileset dir="${basedir}">
|
<fileset dir="${basedir}">
|
||||||
<include name="src/**/*" />
|
<include name="src/**/*" />
|
||||||
|
@ -1,14 +0,0 @@
|
|||||||
Apache Commons Codec
|
|
||||||
Copyright 2002-2009 The Apache Software Foundation
|
|
||||||
|
|
||||||
This product includes software developed by
|
|
||||||
The Apache Software Foundation (http://www.apache.org/).
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
src/test/org/apache/commons/codec/language/DoubleMetaphoneTest.java contains
|
|
||||||
test data from http://aspell.sourceforge.net/test/batch0.tab.
|
|
||||||
|
|
||||||
Copyright (C) 2002 Kevin Atkinson (kevina@gnu.org). Verbatim copying
|
|
||||||
and distribution of this entire article is permitted in any medium,
|
|
||||||
provided this notice is preserved.
|
|
||||||
--------------------------------------------------------------------------------
|
|
@ -1,5 +0,0 @@
|
|||||||
3rd Party Software License
|
|
||||||
|
|
||||||
commons-lang, commons-codec Apache 2.0
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
@ -24,10 +24,11 @@ import java.lang.annotation.Annotation;
|
|||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;
|
||||||
|
|
||||||
public class FieldSupport {
|
public class FieldSupport {
|
||||||
|
|
||||||
public static Annotation[] getAnnotations(Field f, Class<?> filterBy, boolean inherits)
|
public static Annotation[] getAnnotations(Field f, Class filterBy, boolean inherits)
|
||||||
{
|
{
|
||||||
ArrayList<Annotation> filteredAnns = new ArrayList<Annotation>();
|
ArrayList<Annotation> filteredAnns = new ArrayList<Annotation>();
|
||||||
|
|
||||||
|
@ -31,14 +31,14 @@ public class LocaleSupport {
|
|||||||
// singleton
|
// singleton
|
||||||
private LocaleSupport() {}
|
private LocaleSupport() {}
|
||||||
|
|
||||||
private static ThreadLocal<Locale> threadLocal = new InheritableThreadLocal<Locale>();
|
private static ThreadLocal threadLocal = new InheritableThreadLocal();
|
||||||
|
|
||||||
public static void setCurrentLocale(Locale locale) {
|
public static void setCurrentLocale(Locale locale) {
|
||||||
threadLocal.set(locale);
|
threadLocal.set(locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Locale getCurrentLocale() {
|
public static Locale getCurrentLocale() {
|
||||||
Locale locale = threadLocal.get();
|
Locale locale = (Locale) threadLocal.get();
|
||||||
|
|
||||||
if (locale == null) {
|
if (locale == null) {
|
||||||
return Locale.getDefault();
|
return Locale.getDefault();
|
||||||
|
@ -33,7 +33,7 @@ public class DoubleSupport {
|
|||||||
|
|
||||||
String formattedValue = "";
|
String formattedValue = "";
|
||||||
|
|
||||||
if (format.toLowerCase().indexOf("g") == 0 && format.length() < 3) {
|
if ((format.toLowerCase().indexOf("g") == 0 || format.toLowerCase().indexOf("n") == 0) && format.length() < 3) {
|
||||||
|
|
||||||
if (format.length() == 2) {
|
if (format.length() == 2) {
|
||||||
String lengthStr = format.substring(1);
|
String lengthStr = format.substring(1);
|
||||||
|
@ -23,12 +23,12 @@ package RusticiSoftware.System;
|
|||||||
public class EnumSupport {
|
public class EnumSupport {
|
||||||
|
|
||||||
// returns true iff v is a valid ordinal position of a enum in e
|
// returns true iff v is a valid ordinal position of a enum in e
|
||||||
public static boolean isDefined(Class<?> e, int v)
|
public static boolean isDefined(Class e, int v)
|
||||||
{
|
{
|
||||||
return (v >= 0 && v < e.getEnumConstants().length);
|
return (v >= 0 && v < e.getEnumConstants().length);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String toString(Enum<?> e, String m)
|
public static String toString(Enum e, String m)
|
||||||
{
|
{
|
||||||
if ("D".equals(m))
|
if ("D".equals(m))
|
||||||
{
|
{
|
||||||
|
@ -121,7 +121,7 @@ public class DirectorySupport {
|
|||||||
// In .Net Directory.GetFiles, if the searchpattern contains directory path separators
|
// In .Net Directory.GetFiles, if the searchpattern contains directory path separators
|
||||||
// then it will search subdirs.
|
// then it will search subdirs.
|
||||||
|
|
||||||
ArrayList<String> allMatches = new ArrayList<String>();
|
ArrayList allMatches = new ArrayList();
|
||||||
|
|
||||||
// we split on both / and \ characters
|
// we split on both / and \ characters
|
||||||
String[] patternComponents = searchpattern.split("[/\\\\]",2);
|
String[] patternComponents = searchpattern.split("[/\\\\]",2);
|
||||||
@ -145,7 +145,7 @@ public class DirectorySupport {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return allMatches.toArray(new String[allMatches.size()]);
|
return (String[])allMatches.toArray(new String[allMatches.size()]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,7 +177,7 @@ public class DirectorySupport {
|
|||||||
for (int i=0; i<children.length; i++) {
|
for (int i=0; i<children.length; i++) {
|
||||||
File child = new File(dp, children[i]);
|
File child = new File(dp, children[i]);
|
||||||
if (child.isDirectory())
|
if (child.isDirectory())
|
||||||
DirectorySupport.delete(dp.getPath(), true);
|
DirectorySupport.delete(child.getPath(), true);
|
||||||
else
|
else
|
||||||
child.delete();
|
child.delete();
|
||||||
}
|
}
|
||||||
|
@ -24,8 +24,6 @@ import java.io.IOException;
|
|||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
|
||||||
import RusticiSoftware.System.Text.EncodingSupport;
|
|
||||||
|
|
||||||
public class StreamReader {
|
public class StreamReader {
|
||||||
|
|
||||||
// Mimic the behaviour of .Net StreamReader
|
// Mimic the behaviour of .Net StreamReader
|
||||||
@ -93,13 +91,13 @@ public class StreamReader {
|
|||||||
return retISR;
|
return retISR;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static InputStreamReader make(InputStream is, EncodingSupport cs) throws IOException
|
public static InputStreamReader make(InputStream is, String cs) throws IOException
|
||||||
{
|
{
|
||||||
String enc = getEncoding(is);
|
String enc = getEncoding(is);
|
||||||
if (enc != null)
|
if (enc != null)
|
||||||
return new InputStreamReader(is, enc);
|
return new InputStreamReader(is, enc);
|
||||||
else
|
else
|
||||||
return new InputStreamReader(is, cs.getString());
|
return new InputStreamReader(is, cs);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,85 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2007-2010 Rustici Software, LLC
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
|
|
||||||
Author(s):
|
|
||||||
|
|
||||||
Kevin Glynn (kevin.glynn@scorm.com)
|
|
||||||
*/
|
|
||||||
|
|
||||||
package RusticiSoftware.System;
|
|
||||||
|
|
||||||
public class NumberSupport {
|
|
||||||
|
|
||||||
|
|
||||||
// public static float round(float num, int places) {
|
|
||||||
// long factor = (long)Math.pow(10,places);
|
|
||||||
// return Math.round(num * factor) / factor;
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Round a double value to a specified number of decimal
|
|
||||||
* places.
|
|
||||||
*
|
|
||||||
* @param val the value to be rounded.
|
|
||||||
* @param places the number of decimal places to round to.
|
|
||||||
* @return val rounded to places decimal places.
|
|
||||||
*/
|
|
||||||
public static double round(double val, int places) {
|
|
||||||
long factor = (long)Math.pow(10,places);
|
|
||||||
|
|
||||||
// Shift the decimal the correct number of places
|
|
||||||
// to the right.
|
|
||||||
val = val * factor;
|
|
||||||
|
|
||||||
// Round to the nearest integer.
|
|
||||||
long tmp = Math.round(val);
|
|
||||||
|
|
||||||
// Shift the decimal the correct number of places
|
|
||||||
// back to the left.
|
|
||||||
return (double)tmp / factor;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Format a number
|
|
||||||
*
|
|
||||||
* @param n the value to be formatted.
|
|
||||||
* @param format a C# standard numeric format string.
|
|
||||||
* @return n formatted according to C# format string.
|
|
||||||
* @throws NotImplementedException
|
|
||||||
*/
|
|
||||||
public static String format(Number n, String format) throws NotImplementedException {
|
|
||||||
String fStr = null;
|
|
||||||
switch (format.charAt(0)){
|
|
||||||
case 'X':
|
|
||||||
case 'x':
|
|
||||||
fStr = String.format("%1$0" + format.substring(1) + format.charAt(0), n);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw new NotImplementedException("No implementation for " + format + " format string");
|
|
||||||
}
|
|
||||||
return fStr;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static void main(String args[]) throws NotImplementedException {
|
|
||||||
double f = 10.123456789d;
|
|
||||||
System.out.println(f + " turns into " + round(f,3));
|
|
||||||
for (int i = 0; i <= 255; i++) {
|
|
||||||
byte b = (byte)i;
|
|
||||||
System.out.println(b + " turns into " + format(b,"X2"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -235,9 +235,9 @@ public class StringSupport {
|
|||||||
if (str.endsWith(c1+""))
|
if (str.endsWith(c1+""))
|
||||||
{
|
{
|
||||||
// Add empty string for .Net
|
// Add empty string for .Net
|
||||||
ArrayList<String> ret_al = new ArrayList<String>(Arrays.asList(rets));
|
ArrayList ret_al = new ArrayList(Arrays.asList(rets));
|
||||||
ret_al.add("");
|
ret_al.add("");
|
||||||
rets = ret_al.toArray(new String [ret_al.size()]);
|
rets = (String[])ret_al.toArray(new String [ret_al.size()]);
|
||||||
}
|
}
|
||||||
return rets;
|
return rets;
|
||||||
}
|
}
|
||||||
@ -248,9 +248,9 @@ public class StringSupport {
|
|||||||
if (str.endsWith(c1+"") || str.endsWith(c2+""))
|
if (str.endsWith(c1+"") || str.endsWith(c2+""))
|
||||||
{
|
{
|
||||||
// Add empty string for .Net
|
// Add empty string for .Net
|
||||||
ArrayList<String> ret_al = new ArrayList<String>(Arrays.asList(rets));
|
ArrayList ret_al = new ArrayList(Arrays.asList(rets));
|
||||||
ret_al.add("");
|
ret_al.add("");
|
||||||
rets = ret_al.toArray(new String [ret_al.size()]);
|
rets = (String[])ret_al.toArray(new String [ret_al.size()]);
|
||||||
}
|
}
|
||||||
return rets;
|
return rets;
|
||||||
}
|
}
|
||||||
@ -265,16 +265,16 @@ public class StringSupport {
|
|||||||
if (options != StringSplitOptions.RemoveEmptyEntries && str.endsWith(c+""))
|
if (options != StringSplitOptions.RemoveEmptyEntries && str.endsWith(c+""))
|
||||||
{
|
{
|
||||||
// Add empty string for .Net
|
// Add empty string for .Net
|
||||||
ArrayList<String> ret_al = new ArrayList<String>(Arrays.asList(rets));
|
ArrayList ret_al = new ArrayList(Arrays.asList(rets));
|
||||||
ret_al.add("");
|
ret_al.add("");
|
||||||
rets = ret_al.toArray(new String [ret_al.size()]);
|
rets = (String[])ret_al.toArray(new String [ret_al.size()]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options == StringSplitOptions.RemoveEmptyEntries)
|
if (options == StringSplitOptions.RemoveEmptyEntries)
|
||||||
{
|
{
|
||||||
ArrayList<String> ret_al = new ArrayList<String>();
|
ArrayList ret_al = new ArrayList();
|
||||||
for (String p : rets)
|
for (String p : rets)
|
||||||
{
|
{
|
||||||
if (!p.equals(""))
|
if (!p.equals(""))
|
||||||
@ -282,7 +282,7 @@ public class StringSupport {
|
|||||||
ret_al.add(p);
|
ret_al.add(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rets = ret_al.toArray(new String [ret_al.size()]);
|
rets = (String[])ret_al.toArray(new String [ret_al.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rets;
|
return rets;
|
||||||
@ -297,16 +297,16 @@ public class StringSupport {
|
|||||||
if (options != StringSplitOptions.RemoveEmptyEntries && str.endsWith(s))
|
if (options != StringSplitOptions.RemoveEmptyEntries && str.endsWith(s))
|
||||||
{
|
{
|
||||||
// Add empty string for .Net
|
// Add empty string for .Net
|
||||||
ArrayList<String> ret_al = new ArrayList<String>(Arrays.asList(rets));
|
ArrayList ret_al = new ArrayList(Arrays.asList(rets));
|
||||||
ret_al.add("");
|
ret_al.add("");
|
||||||
rets = ret_al.toArray(new String [ret_al.size()]);
|
rets = (String[])ret_al.toArray(new String [ret_al.size()]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (options == StringSplitOptions.RemoveEmptyEntries)
|
if (options == StringSplitOptions.RemoveEmptyEntries)
|
||||||
{
|
{
|
||||||
ArrayList<String> ret_al = new ArrayList<String>();
|
ArrayList ret_al = new ArrayList();
|
||||||
for (String p : rets)
|
for (String p : rets)
|
||||||
{
|
{
|
||||||
if (!p.equals(""))
|
if (!p.equals(""))
|
||||||
@ -314,7 +314,7 @@ public class StringSupport {
|
|||||||
ret_al.add(p);
|
ret_al.add(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rets = ret_al.toArray(new String [ret_al.size()]);
|
rets = (String[])ret_al.toArray(new String [ret_al.size()]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return rets;
|
return rets;
|
||||||
@ -329,25 +329,29 @@ public class StringSupport {
|
|||||||
return isNullOrEmpty(str);
|
return isNullOrEmpty(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static final boolean IsEmptyOrBlank(String str){
|
||||||
|
// Locate first non-trimmable index
|
||||||
|
int firstIdx = 0;
|
||||||
|
while (firstIdx < str.length())
|
||||||
|
{
|
||||||
|
if (isIn(str.charAt(firstIdx),wschars))
|
||||||
|
firstIdx++;
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return firstIdx == str.length();
|
||||||
|
}
|
||||||
|
|
||||||
public static final int lastIndexOfAny(String str, char[] anyOf)
|
public static final int lastIndexOfAny(String str, char[] anyOf)
|
||||||
{
|
{
|
||||||
int index = -1;
|
int index = -1;
|
||||||
for (char test : anyOf)
|
for (char test : anyOf)
|
||||||
{
|
{
|
||||||
index = Math.max(index, str.indexOf(test));
|
index = Math.max(index, str.lastIndexOf(test));
|
||||||
}
|
}
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
|
||||||
// in C# new String('x',50)
|
|
||||||
public static String mkString(char c, int count) {
|
|
||||||
char[] chars = new char[count];
|
|
||||||
for (int i = 0; i < count; i++) {
|
|
||||||
chars[i] = c;
|
|
||||||
}
|
|
||||||
return new String(chars);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void Testmain(String[] args)
|
public static void Testmain(String[] args)
|
||||||
{
|
{
|
||||||
System.out.println("**" + Trim("") + "**");
|
System.out.println("**" + Trim("") + "**");
|
||||||
@ -383,6 +387,4 @@ public class StringSupport {
|
|||||||
System.out.println("Split(\"=fred\", '=') = [\"" + splitFred[0] + "\", \"" + splitFred[1] + "\"]");
|
System.out.println("Split(\"=fred\", '=') = [\"" + splitFred[0] + "\", \"" + splitFred[1] + "\"]");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
package RusticiSoftware.System.Text;
|
|
||||||
|
|
||||||
import java.io.UnsupportedEncodingException;
|
|
||||||
|
|
||||||
public class EncodingSupport {
|
|
||||||
|
|
||||||
private String coding = "utf-8";
|
|
||||||
public EncodingSupport(String coding) {
|
|
||||||
this.coding = coding;
|
|
||||||
}
|
|
||||||
|
|
||||||
public byte[] getBytes(String input) throws UnsupportedEncodingException {
|
|
||||||
return input.getBytes(coding);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getString() {
|
|
||||||
return coding;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
package RusticiSoftware.System.Text;
|
|
||||||
|
|
||||||
public class StringBuilderSupport {
|
|
||||||
|
|
||||||
// In C# ensureCapacity returns the new capacity
|
|
||||||
public static int ensureCapacity(StringBuilder sb, int capacity) {
|
|
||||||
sb.ensureCapacity(capacity);
|
|
||||||
return sb.capacity();
|
|
||||||
}
|
|
||||||
// In C# setLength pads with spaces
|
|
||||||
public static void setLength(StringBuilder sb, int newLen) {
|
|
||||||
if (sb.length() >= newLen) {
|
|
||||||
sb.setLength(newLen);
|
|
||||||
}
|
|
||||||
sb.append(String.format("%1$-" + (newLen - sb.length()) + "s", ""));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
StringBuilder sb = new StringBuilder("hello");
|
|
||||||
System.out.println("**" + sb + "**");
|
|
||||||
StringBuilderSupport.setLength(sb,7);
|
|
||||||
System.out.println("**" + sb + "**");
|
|
||||||
}
|
|
||||||
}
|
|
@ -28,6 +28,8 @@ import org.w3c.dom.*;
|
|||||||
import org.xml.sax.InputSource;
|
import org.xml.sax.InputSource;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
|
||||||
|
import RusticiSoftware.System.StringSupport;
|
||||||
|
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
import javax.xml.parsers.ParserConfigurationException;
|
||||||
@ -181,6 +183,19 @@ public class XmlNode implements Iterable {
|
|||||||
return node.getTextContent().replace("\n", System.getProperty("line.separator"));
|
return node.getTextContent().replace("\n", System.getProperty("line.separator"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isEmptyElement()
|
||||||
|
{
|
||||||
|
if (StringSupport.IsEmptyOrBlank(node.getTextContent()) && getAttributes().size() == 0 && getChildNodes().size() == 0)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// This is a .Net extension to the DOM. It returns markup describing
|
// This is a .Net extension to the DOM. It returns markup describing
|
||||||
// this node's children.
|
// this node's children.
|
||||||
public String getInnerXml()
|
public String getInnerXml()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user