Use old good for loop

This commit is contained in:
serso 2016-03-04 22:41:27 +01:00
parent 8d4a16efe6
commit 2c15e43d87
2 changed files with 3 additions and 68 deletions

View File

@ -22,13 +22,11 @@
package org.solovyev.android.calculator; package org.solovyev.android.calculator;
import com.google.common.collect.Iterables;
import jscl.math.function.Function; import jscl.math.function.Function;
import jscl.math.function.IConstant; import jscl.math.function.IConstant;
import org.solovyev.android.calculator.math.MathType; import org.solovyev.android.calculator.math.MathType;
import org.solovyev.android.calculator.text.TextProcessor; import org.solovyev.android.calculator.text.TextProcessor;
import org.solovyev.common.msg.MessageType; import org.solovyev.common.msg.MessageType;
import org.solovyev.common.search.StartsWithFinder;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.inject.Inject; import javax.inject.Inject;
@ -103,18 +101,14 @@ public class ToJsclTextProcessor implements TextProcessor<PreparedExpression, St
depth++; depth++;
} }
final StartsWithFinder startsWithFinder = StartsWithFinder.newInstance(s);
final StringBuilder result = new StringBuilder(); final StringBuilder result = new StringBuilder();
for (int i = 0; i < s.length(); i++) { for (int i = 0; i < s.length(); i++) {
startsWithFinder.setOffset(i);
int offset = 0; int offset = 0;
String functionName = Iterables.find(MathType.function.getTokens(engine), startsWithFinder, null); String functionName = App.find(MathType.function.getTokens(engine), s, i);
if (functionName == null) { if (functionName == null) {
String operatorName = Iterables.find(MathType.operator.getTokens(engine), startsWithFinder, null); String operatorName = App.find(MathType.operator.getTokens(engine), s, i);
if (operatorName == null) { if (operatorName == null) {
String varName = Iterables.find(engine.getVariablesRegistry().getNames(), startsWithFinder, null); String varName = App.find(engine.getVariablesRegistry().getNames(), s, i);
if (varName != null) { if (varName != null) {
final IConstant var = engine.getVariablesRegistry().get(varName); final IConstant var = engine.getVariablesRegistry().get(varName);
if (var != null) { if (var != null) {

View File

@ -1,59 +0,0 @@
/*
* Copyright 2013 serso aka se.solovyev
*
* 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.
*
* ---------------------------------------------------------------------
* Contact details
*
* Email: se.solovyev@gmail.com
* Site: http://se.solovyev.org
*/
package org.solovyev.common.search;
import com.google.common.base.Predicate;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public class StartsWithFinder implements Predicate<String> {
@Nonnull
private final String string;
private int offset;
private StartsWithFinder(@Nonnull String string, int offset) {
this.string = string;
this.offset = offset;
}
@Nonnull
public static StartsWithFinder newFrom(@Nonnull String targetString, int i) {
return new StartsWithFinder(targetString, i);
}
@Nonnull
public static StartsWithFinder newInstance(@Nonnull String targetString) {
return newFrom(targetString, 0);
}
@Override
public boolean apply(@Nullable String prefix) {
return prefix != null && string.startsWith(prefix, offset);
}
public void setOffset(int offset) {
this.offset = offset;
}
}