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>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry exported="true" kind="lib" path="lib/commons-lang-2.4.jar"/>
|
||||
<classpathentry exported="true" kind="lib" path="lib/commons-codec-1.4.jar"/>
|
||||
<classpathentry kind="lib" path="lib/commons-lang-2.4.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
@ -16,5 +16,10 @@
|
||||
<Name>Name</Name>
|
||||
<Get>${this}.getName()</Get>
|
||||
</Property>
|
||||
<Property>
|
||||
<Type>System.Boolean</Type>
|
||||
<Name>IsDirectory</Name>
|
||||
<Get>${this}.isDirectory()</Get>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Class>
|
@ -20,17 +20,6 @@
|
||||
<Name>TrueString</Name>
|
||||
<Get>"True"</Get>
|
||||
</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>
|
||||
<Methods>
|
||||
<Method>
|
||||
|
@ -49,17 +49,6 @@
|
||||
</Params>
|
||||
<Java>Character.isLetter(${ch})</Java>
|
||||
</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>
|
||||
<Name>IsUpper</Name>
|
||||
|
@ -14,34 +14,6 @@
|
||||
</Property>
|
||||
</Properties>
|
||||
<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>
|
||||
<Return>System.Boolean</Return>
|
||||
<Name>ToBoolean</Name>
|
||||
|
@ -67,10 +67,9 @@
|
||||
</Params>
|
||||
<Imports>
|
||||
<Import>RusticiSoftware.System.IO.StreamReader</Import>
|
||||
<Import>RusticiSoftware.System.Text.EncodingSupport</Import>
|
||||
<Import>java.io.*</Import>
|
||||
</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>
|
||||
</Constructors>
|
||||
<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>
|
||||
<Java>NumberFormat.getInstance(${provider}).format(${this})</Java>
|
||||
</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>
|
||||
<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>
|
||||
<Constructor>
|
||||
<Params>
|
||||
<Param>
|
||||
<Name>char</Name>
|
||||
<Type>System.Char</Type>
|
||||
</Param>
|
||||
<Param>
|
||||
<Name>length</Name>
|
||||
<Type>System.Int32</Type>
|
||||
</Param>
|
||||
<Param>
|
||||
<Name>char</Name>
|
||||
<Type>System.Char</Type>
|
||||
</Param>
|
||||
</Params>
|
||||
<Imports>
|
||||
<Import>RusticiSoftware.System.StringSupport</Import>
|
||||
</Imports>
|
||||
<Java>StringSupport.mkString(${char}, ${length})</Java>
|
||||
<Java>new String(${length}, ${char}) /* FIX ME */</Java>
|
||||
</Constructor>
|
||||
<Constructor>
|
||||
<Params>
|
||||
|
@ -9,23 +9,9 @@
|
||||
<Property>
|
||||
<Name>UTF8</Name>
|
||||
<Type>System.Text.Encoding</Type>
|
||||
<Get>(new EncodingSupport("UTF-8"))</Get>
|
||||
<Imports>
|
||||
<Import>RusticiSoftware.System.Text.EncodingSupport</Import>
|
||||
</Imports>
|
||||
<Get>"UTF-8"</Get>
|
||||
</Property>
|
||||
</Properties>
|
||||
<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>
|
||||
</Class>
|
||||
|
@ -24,16 +24,7 @@
|
||||
<Name>Length</Name>
|
||||
<Type>System.Int32</Type>
|
||||
<Get>${this}.length()</Get>
|
||||
<Set>StringBuilderSupport.setLength(${this}, ${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>
|
||||
<Set>${this}.setlength(${value})</Set>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Methods>
|
||||
@ -59,20 +50,6 @@
|
||||
</Params>
|
||||
<Java>${this}.append((${arg}) + System.getProperty("line.separator"))</Java>
|
||||
</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>
|
||||
<Return>System.Text.StringBuilder</Return>
|
||||
<Name>Insert</Name>
|
||||
|
@ -6,4 +6,4 @@ classes.dir=${build.dir}/classes
|
||||
jar.dir=${build.dir}/jar
|
||||
zip.dir=${build.dir}/zip
|
||||
java.target.vm=1.5
|
||||
|
||||
src.zip=${zip.dir}/cs2jlibrary-src.zip
|
@ -50,10 +50,6 @@
|
||||
|
||||
<target name="src" description="Make a source distribution">
|
||||
<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}">
|
||||
<fileset dir="${basedir}">
|
||||
<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.util.ArrayList;
|
||||
|
||||
import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;
|
||||
|
||||
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>();
|
||||
|
||||
|
@ -31,14 +31,14 @@ public class LocaleSupport {
|
||||
// singleton
|
||||
private LocaleSupport() {}
|
||||
|
||||
private static ThreadLocal<Locale> threadLocal = new InheritableThreadLocal<Locale>();
|
||||
private static ThreadLocal threadLocal = new InheritableThreadLocal();
|
||||
|
||||
public static void setCurrentLocale(Locale locale) {
|
||||
threadLocal.set(locale);
|
||||
}
|
||||
|
||||
public static Locale getCurrentLocale() {
|
||||
Locale locale = threadLocal.get();
|
||||
Locale locale = (Locale) threadLocal.get();
|
||||
|
||||
if (locale == null) {
|
||||
return Locale.getDefault();
|
||||
|
@ -33,7 +33,7 @@ public class DoubleSupport {
|
||||
|
||||
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) {
|
||||
String lengthStr = format.substring(1);
|
||||
|
@ -23,12 +23,12 @@ package RusticiSoftware.System;
|
||||
public class EnumSupport {
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
public static String toString(Enum<?> e, String m)
|
||||
public static String toString(Enum e, String m)
|
||||
{
|
||||
if ("D".equals(m))
|
||||
{
|
||||
|
@ -121,7 +121,7 @@ public class DirectorySupport {
|
||||
// In .Net Directory.GetFiles, if the searchpattern contains directory path separators
|
||||
// then it will search subdirs.
|
||||
|
||||
ArrayList<String> allMatches = new ArrayList<String>();
|
||||
ArrayList allMatches = new ArrayList();
|
||||
|
||||
// we split on both / and \ characters
|
||||
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++) {
|
||||
File child = new File(dp, children[i]);
|
||||
if (child.isDirectory())
|
||||
DirectorySupport.delete(dp.getPath(), true);
|
||||
DirectorySupport.delete(child.getPath(), true);
|
||||
else
|
||||
child.delete();
|
||||
}
|
||||
|
@ -24,8 +24,6 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
import RusticiSoftware.System.Text.EncodingSupport;
|
||||
|
||||
public class StreamReader {
|
||||
|
||||
// Mimic the behaviour of .Net StreamReader
|
||||
@ -93,13 +91,13 @@ public class StreamReader {
|
||||
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);
|
||||
if (enc != null)
|
||||
return new InputStreamReader(is, enc);
|
||||
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+""))
|
||||
{
|
||||
// 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("");
|
||||
rets = ret_al.toArray(new String [ret_al.size()]);
|
||||
rets = (String[])ret_al.toArray(new String [ret_al.size()]);
|
||||
}
|
||||
return rets;
|
||||
}
|
||||
@ -248,9 +248,9 @@ public class StringSupport {
|
||||
if (str.endsWith(c1+"") || str.endsWith(c2+""))
|
||||
{
|
||||
// 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("");
|
||||
rets = ret_al.toArray(new String [ret_al.size()]);
|
||||
rets = (String[])ret_al.toArray(new String [ret_al.size()]);
|
||||
}
|
||||
return rets;
|
||||
}
|
||||
@ -265,16 +265,16 @@ public class StringSupport {
|
||||
if (options != StringSplitOptions.RemoveEmptyEntries && str.endsWith(c+""))
|
||||
{
|
||||
// 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("");
|
||||
rets = ret_al.toArray(new String [ret_al.size()]);
|
||||
rets = (String[])ret_al.toArray(new String [ret_al.size()]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (options == StringSplitOptions.RemoveEmptyEntries)
|
||||
{
|
||||
ArrayList<String> ret_al = new ArrayList<String>();
|
||||
ArrayList ret_al = new ArrayList();
|
||||
for (String p : rets)
|
||||
{
|
||||
if (!p.equals(""))
|
||||
@ -282,7 +282,7 @@ public class StringSupport {
|
||||
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;
|
||||
@ -297,16 +297,16 @@ public class StringSupport {
|
||||
if (options != StringSplitOptions.RemoveEmptyEntries && str.endsWith(s))
|
||||
{
|
||||
// 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("");
|
||||
rets = ret_al.toArray(new String [ret_al.size()]);
|
||||
rets = (String[])ret_al.toArray(new String [ret_al.size()]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (options == StringSplitOptions.RemoveEmptyEntries)
|
||||
{
|
||||
ArrayList<String> ret_al = new ArrayList<String>();
|
||||
ArrayList ret_al = new ArrayList();
|
||||
for (String p : rets)
|
||||
{
|
||||
if (!p.equals(""))
|
||||
@ -314,7 +314,7 @@ public class StringSupport {
|
||||
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;
|
||||
@ -329,25 +329,29 @@ public class StringSupport {
|
||||
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)
|
||||
{
|
||||
int index = -1;
|
||||
for (char test : anyOf)
|
||||
{
|
||||
index = Math.max(index, str.indexOf(test));
|
||||
index = Math.max(index, str.lastIndexOf(test));
|
||||
}
|
||||
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)
|
||||
{
|
||||
System.out.println("**" + Trim("") + "**");
|
||||
@ -383,6 +387,4 @@ public class StringSupport {
|
||||
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.SAXException;
|
||||
|
||||
import RusticiSoftware.System.StringSupport;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
@ -181,6 +183,19 @@ public class XmlNode implements Iterable {
|
||||
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 node's children.
|
||||
public String getInnerXml()
|
||||
|
Loading…
x
Reference in New Issue
Block a user