FrozenCall.java unused, Lambda0 needed for code currently in development

This commit is contained in:
Maxmtg
2012-02-16 21:18:33 +00:00
parent 36f7976298
commit 9a51670837
3 changed files with 61 additions and 108 deletions

2
.gitattributes vendored
View File

@@ -11387,8 +11387,8 @@ src/main/java/net/slightlymagic/braids/util/generator/FindNonDirectoriesSkipDotD
src/main/java/net/slightlymagic/braids/util/generator/GeneratorFromArray.java svneol=native#text/plain src/main/java/net/slightlymagic/braids/util/generator/GeneratorFromArray.java svneol=native#text/plain
src/main/java/net/slightlymagic/braids/util/generator/GeneratorFunctions.java svneol=native#text/plain src/main/java/net/slightlymagic/braids/util/generator/GeneratorFunctions.java svneol=native#text/plain
src/main/java/net/slightlymagic/braids/util/generator/package-info.java svneol=native#text/plain src/main/java/net/slightlymagic/braids/util/generator/package-info.java svneol=native#text/plain
src/main/java/net/slightlymagic/braids/util/lambda/FrozenCall.java svneol=native#text/plain
src/main/java/net/slightlymagic/braids/util/lambda/Lambda.java svneol=native#text/plain src/main/java/net/slightlymagic/braids/util/lambda/Lambda.java svneol=native#text/plain
src/main/java/net/slightlymagic/braids/util/lambda/Lambda0.java -text
src/main/java/net/slightlymagic/braids/util/lambda/Lambda1.java svneol=native#text/plain src/main/java/net/slightlymagic/braids/util/lambda/Lambda1.java svneol=native#text/plain
src/main/java/net/slightlymagic/braids/util/lambda/Lambda2.java svneol=native#text/plain src/main/java/net/slightlymagic/braids/util/lambda/Lambda2.java svneol=native#text/plain
src/main/java/net/slightlymagic/braids/util/lambda/Lambda3.java svneol=native#text/plain src/main/java/net/slightlymagic/braids/util/lambda/Lambda3.java svneol=native#text/plain

View File

@@ -1,107 +0,0 @@
/*
* The files in the directory "net/slightlymagic/braids" and in all subdirectories of it (the "Files") are
* Copyright 2011 Braids Cabal-Conjurer. They are available under either Forge's
* main license (the GNU Public License; see LICENSE.txt in Forge's top directory)
* or under the Apache License, as explained below.
*
* The Files are additionally licensed under the Apache License, Version 2.0 (the
* "Apache License"); you may not use the files in this directory except in
* compliance with one of its two licenses. You may obtain a copy of the Apache
* License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Apache License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Apache License for the specific language governing permissions and
* limitations under the Apache License.
*
*/
package net.slightlymagic.braids.util.lambda;
import static net.slightlymagic.braids.util.UtilFunctions.checkNotNull;
import net.slightlymagic.braids.util.UtilFunctions;
/**
* This embodies a promise to invoke a certain method at a later time; the
* FrozenCall remembers the arguments to use and the return type.
*
* @param <T>
* the return type of apply
*
* @see Thunk
*/
public class FrozenCall<T> implements Thunk<T> {
private Lambda<T> proc;
private Object[] args;
/**
* Instantiates a new frozen call.
*
* @param proc
* the proc
* @param args
* the args
*/
public FrozenCall(final Lambda<T> proc, final Object[] args) {
checkNotNull("proc", proc);
checkNotNull("args", args);
this.proc = proc;
this.args = args;
}
/*
* (non-Javadoc)
*
* @see net.slightlymagic.braids.util.lambda.Thunk#apply()
*/
/**
* Apply.
*
* @return <T>
*/
public final T apply() {
return proc.apply(args);
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
/**
* Equals.
*
* @param obj Object
* @return boolean
*/
@Override
public final boolean equals(final Object obj) {
FrozenCall<T> that = UtilFunctions.checkNullOrNotInstance(this, obj);
if (that == null) {
return false;
} else if (!this.proc.equals(that.proc)) {
return false;
} else if (this.args.length != that.args.length) {
return false;
}
for (int i = 0; i < args.length; i++) {
if (this.args[i] == null && that.args[i] != null) {
return false;
} else if (!this.args[i].equals(that.args[i])) {
return false;
}
}
return true;
}
/** {@inheritDoc} */
@Override
public int hashCode() {
return 41 * (41 + this.args.hashCode());
}
}

View File

@@ -0,0 +1,60 @@
/*
* The files in the directory "net/slightlymagic/braids" and in all subdirectories of it (the "Files") are
* Copyright 2011 Braids Cabal-Conjurer. They are available under either Forge's
* main license (the GNU Public License; see LICENSE.txt in Forge's top directory)
* or under the Apache License, as explained below.
*
* The Files are additionally licensed under the Apache License, Version 2.0 (the
* "Apache License"); you may not use the files in this directory except in
* compliance with one of its two licenses. You may obtain a copy of the Apache
* License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the Apache License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Apache License for the specific language governing permissions and
* limitations under the Apache License.
*
*/
package net.slightlymagic.braids.util.lambda;
/**
* The Class Lambda1.
*
* @param <R>
* the generic type
* @param <A1>
* the generic type
*/
public abstract class Lambda0<R> implements Lambda<R> {
/**
* Apply.
*
* @param arg1
* the arg1
* @return the r
*/
public abstract R apply();
/*
* (non-Javadoc)
*
* @see
* net.slightlymagic.braids.util.lambda.Lambda#apply(java.lang.Object[])
*/
// TODO @Override
/**
* Apply.
*
* @param args Object[]
* @return R
*/
public final R apply(final Object[] args) {
return apply();
}
}