mirror of
https://github.com/corda/corda.git
synced 2025-01-07 13:38:47 +00:00
Merge http://github.com/gzsombor/avian into gzsombor
This commit is contained in:
commit
345c7d38a9
@ -377,6 +377,31 @@ Java_java_io_File_delete(JNIEnv* e, jclass, jstring path)
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jboolean JNICALL
|
||||
Java_java_io_File_canRead(JNIEnv* e, jclass, jstring path)
|
||||
{
|
||||
string_t chars = getChars(e, path);
|
||||
if (chars) {
|
||||
int r = access(chars, R_OK);
|
||||
releaseChars(e, path, chars);
|
||||
return (r == 0);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jboolean JNICALL
|
||||
Java_java_io_File_canWrite(JNIEnv* e, jclass, jstring path)
|
||||
{
|
||||
string_t chars = getChars(e, path);
|
||||
if (chars) {
|
||||
int r = access(chars, W_OK);
|
||||
releaseChars(e, path, chars);
|
||||
return (r == 0);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
extern "C" JNIEXPORT jboolean JNICALL
|
||||
Java_java_io_File_rename(JNIEnv* e, jclass, jstring old, jstring new_)
|
||||
{
|
||||
|
@ -60,7 +60,19 @@ public class File {
|
||||
public boolean isFile() {
|
||||
return isFile(path);
|
||||
}
|
||||
|
||||
private static native boolean canRead(String path);
|
||||
|
||||
public boolean canRead() {
|
||||
return canRead(path);
|
||||
}
|
||||
|
||||
private static native boolean canWrite(String path);
|
||||
|
||||
public boolean canWrite() {
|
||||
return canWrite(path);
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
int index = path.lastIndexOf(FileSeparator);
|
||||
if (index >= 0) {
|
||||
|
@ -79,6 +79,10 @@ public class ObjectInputStream extends InputStream {
|
||||
read('d');
|
||||
return readDoubleToken();
|
||||
}
|
||||
|
||||
public void defaultReadObject() throws IOException {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
private void skipSpace() throws IOException {
|
||||
int c;
|
||||
|
@ -82,6 +82,10 @@ public class ObjectOutputStream extends OutputStream {
|
||||
out.print(v);
|
||||
}
|
||||
|
||||
public void defaultWriteObject() throws IOException {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
private void writeObject(Object o, IdentityHashMap<Object, Integer> map,
|
||||
int nextId)
|
||||
throws IOException
|
||||
|
30
classpath/java/lang/SecurityManager.java
Normal file
30
classpath/java/lang/SecurityManager.java
Normal file
@ -0,0 +1,30 @@
|
||||
/* Copyright (c) 2010, Avian Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software
|
||||
for any purpose with or without fee is hereby granted, provided
|
||||
that the above copyright notice and this permission notice appear
|
||||
in all copies.
|
||||
|
||||
There is NO WARRANTY for this software. See license.txt for
|
||||
details. */
|
||||
|
||||
package java.lang;
|
||||
|
||||
import java.security.AccessController;
|
||||
import java.security.Permission;
|
||||
import java.security.SecurityPermission;
|
||||
|
||||
public class SecurityManager {
|
||||
|
||||
public SecurityManager() {
|
||||
}
|
||||
|
||||
public void checkPermission(Permission perm) {
|
||||
AccessController.checkPermission(perm);
|
||||
}
|
||||
|
||||
public void checkSecurityAccess(String target) {
|
||||
checkPermission(new SecurityPermission(target));
|
||||
}
|
||||
|
||||
}
|
@ -236,19 +236,31 @@ public final class String
|
||||
}
|
||||
|
||||
public String toLowerCase() {
|
||||
char[] b = new char[length];
|
||||
for (int i = 0; i < length; ++i) {
|
||||
b[i] = Character.toLowerCase(charAt(i));
|
||||
for (int j = 0; j < length; ++j) {
|
||||
char ch = charAt(j);
|
||||
if (Character.toLowerCase(ch) != ch) {
|
||||
char[] b = new char[length];
|
||||
for (int i = 0; i < length; ++i) {
|
||||
b[i] = Character.toLowerCase(charAt(i));
|
||||
}
|
||||
return new String(b, 0, length, false);
|
||||
}
|
||||
}
|
||||
return new String(b, 0, length, false);
|
||||
return this;
|
||||
}
|
||||
|
||||
public String toUpperCase() {
|
||||
char[] b = new char[length];
|
||||
for (int i = 0; i < length; ++i) {
|
||||
b[i] = Character.toUpperCase(charAt(i));
|
||||
for (int j = 0; j < length; ++j) {
|
||||
char ch = charAt(j);
|
||||
if (Character.toUpperCase(ch) != ch) {
|
||||
char[] b = new char[length];
|
||||
for (int i = 0; i < length; ++i) {
|
||||
b[i] = Character.toUpperCase(charAt(i));
|
||||
}
|
||||
return new String(b, 0, length, false);
|
||||
}
|
||||
}
|
||||
return new String(b, 0, length, false);
|
||||
return this;
|
||||
}
|
||||
|
||||
public int indexOf(int c) {
|
||||
@ -581,11 +593,19 @@ public final class String
|
||||
}
|
||||
|
||||
public String toUpperCase(Locale locale) {
|
||||
throw new UnsupportedOperationException();
|
||||
if (locale == Locale.ENGLISH) {
|
||||
return toUpperCase();
|
||||
} else {
|
||||
throw new UnsupportedOperationException("toUpperCase("+locale+')');
|
||||
}
|
||||
}
|
||||
|
||||
public String toLowerCase(Locale locale) {
|
||||
throw new UnsupportedOperationException();
|
||||
if (locale == Locale.ENGLISH) {
|
||||
return toLowerCase();
|
||||
} else {
|
||||
throw new UnsupportedOperationException("toLowerCase("+locale+')');
|
||||
}
|
||||
}
|
||||
|
||||
public static String format(Locale locale, String format, Object ... args) {
|
||||
|
@ -22,6 +22,7 @@ import java.util.Properties;
|
||||
public abstract class System {
|
||||
private static Property properties;
|
||||
|
||||
private static SecurityManager securityManager;
|
||||
// static {
|
||||
// loadLibrary("natives");
|
||||
// }
|
||||
@ -118,6 +119,14 @@ public abstract class System {
|
||||
public static void exit(int code) {
|
||||
Runtime.getRuntime().exit(code);
|
||||
}
|
||||
|
||||
public static SecurityManager getSecurityManager() {
|
||||
return securityManager;
|
||||
}
|
||||
|
||||
public static void setSecurityManager(SecurityManager securityManager) {
|
||||
System.securityManager = securityManager;
|
||||
}
|
||||
|
||||
private static class Property {
|
||||
public final String name;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (c) 2008, Avian Contributors
|
||||
/* Copyright (c) 2008, 2010 Avian Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software
|
||||
for any purpose with or without fee is hereby granted, provided
|
||||
@ -21,5 +21,9 @@ public class AccessController {
|
||||
public static Object doPrivileged (PrivilegedAction action) {
|
||||
return action.run();
|
||||
}
|
||||
|
||||
public static void checkPermission(Permission perm) throws AccessControlException {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -10,4 +10,10 @@
|
||||
|
||||
package java.security;
|
||||
|
||||
public class AllPermission extends Permission { }
|
||||
public class AllPermission extends Permission {
|
||||
public AllPermission() {
|
||||
super("<all>");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
19
classpath/java/security/BasicPermission.java
Normal file
19
classpath/java/security/BasicPermission.java
Normal file
@ -0,0 +1,19 @@
|
||||
/* Copyright (c) 2010, Avian Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software
|
||||
for any purpose with or without fee is hereby granted, provided
|
||||
that the above copyright notice and this permission notice appear
|
||||
in all copies.
|
||||
|
||||
There is NO WARRANTY for this software. See license.txt for
|
||||
details. */
|
||||
|
||||
package java.security;
|
||||
|
||||
public class BasicPermission extends Permission {
|
||||
|
||||
public BasicPermission(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
}
|
@ -11,6 +11,22 @@
|
||||
package java.security;
|
||||
|
||||
public abstract class Permission {
|
||||
|
||||
protected String name;
|
||||
|
||||
public Permission(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return this.getClass().getSimpleName() + '['+name+']';
|
||||
}
|
||||
|
||||
public PermissionCollection newPermissionCollection() {
|
||||
return null;
|
||||
}
|
||||
|
19
classpath/java/security/SecurityPermission.java
Normal file
19
classpath/java/security/SecurityPermission.java
Normal file
@ -0,0 +1,19 @@
|
||||
/* Copyright (c) 2010, Avian Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software
|
||||
for any purpose with or without fee is hereby granted, provided
|
||||
that the above copyright notice and this permission notice appear
|
||||
in all copies.
|
||||
|
||||
There is NO WARRANTY for this software. See license.txt for
|
||||
details. */
|
||||
|
||||
package java.security;
|
||||
|
||||
public class SecurityPermission extends BasicPermission {
|
||||
|
||||
public SecurityPermission(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
}
|
@ -148,5 +148,11 @@ public class Arrays {
|
||||
array[i] = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static <T> void fill(T[] array, T value) {
|
||||
for (int i=0;i<array.length;i++) {
|
||||
array[i] = value;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -11,6 +11,7 @@
|
||||
package java.util;
|
||||
|
||||
public class Collections {
|
||||
|
||||
private Collections() { }
|
||||
|
||||
public static void shuffle(List list, Random random) {
|
||||
@ -84,6 +85,10 @@ public class Collections {
|
||||
return new IteratorEnumeration<T> (c.iterator());
|
||||
}
|
||||
|
||||
public static <T> Comparator<T> reverseOrder(Comparator<T> cmp) {
|
||||
return new ReverseComparator<T>(cmp);
|
||||
}
|
||||
|
||||
static class IteratorEnumeration<T> implements Enumeration<T> {
|
||||
private final Iterator<T> it;
|
||||
|
||||
@ -379,4 +384,20 @@ public class Collections {
|
||||
it.remove();
|
||||
}
|
||||
}
|
||||
|
||||
private static final class ReverseComparator<T> implements Comparator<T> {
|
||||
|
||||
Comparator<T> cmp;
|
||||
|
||||
public ReverseComparator(Comparator<T> cmp) {
|
||||
this.cmp = cmp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compare(T o1, T o2) {
|
||||
return - cmp.compare(o1, o2);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
47
classpath/java/util/ConcurrentModificationException.java
Normal file
47
classpath/java/util/ConcurrentModificationException.java
Normal file
@ -0,0 +1,47 @@
|
||||
/* Copyright (c) 2010, Avian Contributors
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software
|
||||
for any purpose with or without fee is hereby granted, provided
|
||||
that the above copyright notice and this permission notice appear
|
||||
in all copies.
|
||||
|
||||
There is NO WARRANTY for this software. See license.txt for
|
||||
details. */
|
||||
|
||||
package java.util;
|
||||
|
||||
/**
|
||||
* @author zsombor
|
||||
*
|
||||
*/
|
||||
public class ConcurrentModificationException extends RuntimeException {
|
||||
|
||||
/**
|
||||
* @param message
|
||||
* @param cause
|
||||
*/
|
||||
public ConcurrentModificationException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param message
|
||||
*/
|
||||
public ConcurrentModificationException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param cause
|
||||
*/
|
||||
public ConcurrentModificationException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public ConcurrentModificationException() {
|
||||
}
|
||||
|
||||
}
|
@ -269,8 +269,10 @@ public class HashMap<K, V> implements Map<K, V> {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(V value) {
|
||||
public V setValue(V value) {
|
||||
V old = this.value;
|
||||
this.value = value;
|
||||
return old;
|
||||
}
|
||||
|
||||
public HashMap.Cell<K, V> next() {
|
||||
|
@ -40,6 +40,6 @@ public interface Map<K, V> {
|
||||
|
||||
public V getValue();
|
||||
|
||||
public void setValue(V value);
|
||||
public V setValue(V value);
|
||||
}
|
||||
}
|
||||
|
@ -14,10 +14,15 @@ import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.PrintStream;
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
|
||||
public class Properties extends Hashtable {
|
||||
public void load(InputStream in) throws IOException {
|
||||
new Parser().parse(in, this);
|
||||
new InputStreamParser(in).parse(this);
|
||||
}
|
||||
|
||||
public void load(Reader reader) throws IOException {
|
||||
new ReaderParser(reader).parse(this);
|
||||
}
|
||||
|
||||
public void store(OutputStream out, String comment) throws IOException {
|
||||
@ -53,7 +58,7 @@ public class Properties extends Hashtable {
|
||||
return keys();
|
||||
}
|
||||
|
||||
private static class Parser {
|
||||
private abstract static class Parser {
|
||||
private StringBuilder key = null;
|
||||
private StringBuilder value = null;
|
||||
private StringBuilder current = null;
|
||||
@ -79,13 +84,15 @@ public class Properties extends Hashtable {
|
||||
key = value = current = null;
|
||||
}
|
||||
|
||||
private void parse(InputStream in, Map map)
|
||||
abstract int readCharacter() throws IOException;
|
||||
|
||||
void parse(Map map)
|
||||
throws IOException
|
||||
{
|
||||
boolean escaped = false;
|
||||
|
||||
int c;
|
||||
while ((c = in.read()) != -1) {
|
||||
while ((c = readCharacter()) != -1) {
|
||||
if (c == '\\') {
|
||||
if (escaped) {
|
||||
escaped = false;
|
||||
@ -98,7 +105,7 @@ public class Properties extends Hashtable {
|
||||
case '#':
|
||||
case '!':
|
||||
if (key == null) {
|
||||
while ((c = in.read()) != -1 && c != '\n');
|
||||
while ((c = readCharacter()) != -1 && c != '\n');
|
||||
} else {
|
||||
append(c);
|
||||
}
|
||||
@ -153,4 +160,32 @@ public class Properties extends Hashtable {
|
||||
finishLine(map);
|
||||
}
|
||||
}
|
||||
|
||||
static class InputStreamParser extends Parser {
|
||||
InputStream in;
|
||||
|
||||
|
||||
public InputStreamParser(InputStream in) {
|
||||
this.in = in;
|
||||
}
|
||||
|
||||
@Override
|
||||
int readCharacter() throws IOException {
|
||||
return in.read();
|
||||
}
|
||||
}
|
||||
|
||||
static class ReaderParser extends Parser {
|
||||
Reader in;
|
||||
|
||||
public ReaderParser(Reader in) {
|
||||
this.in = in;
|
||||
}
|
||||
|
||||
@Override
|
||||
int readCharacter() throws IOException {
|
||||
return in.read();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -112,9 +112,12 @@ public class TreeMap<K,V> implements Map<K,V> {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(V value) {
|
||||
public V setValue(V value) {
|
||||
V old = this.value;
|
||||
this.value = value;
|
||||
return old;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class KeySet implements Set<K> {
|
||||
|
@ -114,8 +114,10 @@ public class WeakHashMap<K, V> implements Map<K, V> {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(V value) {
|
||||
public V setValue(V value) {
|
||||
V old = this.value;
|
||||
this.value = value;
|
||||
return old;
|
||||
}
|
||||
|
||||
public HashMap.Cell<K, V> next() {
|
||||
|
@ -1,3 +1,4 @@
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.File;
|
||||
|
Loading…
Reference in New Issue
Block a user