This commit is contained in:
serso 2016-01-20 17:04:17 +01:00
parent 7faef42dea
commit 591cfa4648
15 changed files with 95 additions and 150 deletions

View File

@ -22,17 +22,19 @@
package org.solovyev.android.calculator; package org.solovyev.android.calculator;
import org.solovyev.android.calculator.model.EntityDao;
import org.solovyev.common.JBuilder; import org.solovyev.common.JBuilder;
import org.solovyev.common.math.MathEntity; import org.solovyev.common.math.MathEntity;
import org.solovyev.common.math.MathRegistry; import org.solovyev.common.math.MathRegistry;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
public abstract class BaseEntitiesRegistry<T extends MathEntity, P extends MathPersistenceEntity> implements EntitiesRegistry<T> { import javax.annotation.Nonnull;
import javax.annotation.Nullable;
public abstract class BaseEntitiesRegistry<T extends MathEntity, P extends PersistedEntity> implements EntitiesRegistry<T> {
@Nonnull @Nonnull
private final MathRegistry<T> mathRegistry; private final MathRegistry<T> mathRegistry;
@ -41,14 +43,14 @@ public abstract class BaseEntitiesRegistry<T extends MathEntity, P extends MathP
private final String prefix; private final String prefix;
@Nonnull @Nonnull
private final MathEntityDao<P> mathEntityDao; private final EntityDao<P> entityDao;
protected BaseEntitiesRegistry(@Nonnull MathRegistry<T> mathRegistry, protected BaseEntitiesRegistry(@Nonnull MathRegistry<T> mathRegistry,
@Nonnull String prefix, @Nonnull String prefix,
@Nonnull MathEntityDao<P> mathEntityDao) { @Nonnull EntityDao<P> entityDao) {
this.mathRegistry = mathRegistry; this.mathRegistry = mathRegistry;
this.prefix = prefix; this.prefix = prefix;
this.mathEntityDao = mathEntityDao; this.entityDao = entityDao;
} }
@ -68,11 +70,11 @@ public abstract class BaseEntitiesRegistry<T extends MathEntity, P extends MathP
stringName = prefix + substitute; stringName = prefix + substitute;
} }
return mathEntityDao.getDescription(stringName); return entityDao.getDescription(stringName);
} }
public synchronized void load() { public synchronized void load() {
final MathEntityPersistenceContainer<P> persistenceContainer = mathEntityDao.load(); final PersistedEntitiesContainer<P> persistenceContainer = entityDao.load();
final List<P> notCreatedEntities = new ArrayList<P>(); final List<P> notCreatedEntities = new ArrayList<P>();
@ -110,7 +112,7 @@ public abstract class BaseEntitiesRegistry<T extends MathEntity, P extends MathP
@Override @Override
public synchronized void save() { public synchronized void save() {
final MathEntityPersistenceContainer<P> container = createPersistenceContainer(); final PersistedEntitiesContainer<P> container = createPersistenceContainer();
for (T entity : this.getEntities()) { for (T entity : this.getEntities()) {
if (!entity.isSystem()) { if (!entity.isSystem()) {
@ -121,14 +123,14 @@ public abstract class BaseEntitiesRegistry<T extends MathEntity, P extends MathP
} }
} }
this.mathEntityDao.save(container); this.entityDao.save(container);
} }
@Nullable @Nullable
protected abstract P transform(@Nonnull T entity); protected abstract P transform(@Nonnull T entity);
@Nonnull @Nonnull
protected abstract MathEntityPersistenceContainer<P> createPersistenceContainer(); protected abstract PersistedEntitiesContainer<P> createPersistenceContainer();
@Nonnull @Nonnull
@Override @Override

View File

@ -27,7 +27,7 @@ import android.content.SharedPreferences;
import com.squareup.otto.Bus; import com.squareup.otto.Bus;
import org.solovyev.android.calculator.model.AndroidMathEntityDao; import org.solovyev.android.calculator.model.EntityDao;
import org.solovyev.android.calculator.model.Functions; import org.solovyev.android.calculator.model.Functions;
import org.solovyev.android.calculator.model.Vars; import org.solovyev.android.calculator.model.Vars;
import org.solovyev.android.prefs.BooleanPreference; import org.solovyev.android.prefs.BooleanPreference;
@ -92,10 +92,10 @@ public class Engine implements SharedPreferences.OnSharedPreferenceChangeListene
this.mathEngine.setRoundResult(true); this.mathEngine.setRoundResult(true);
this.mathEngine.setUseGroupingSeparator(true); this.mathEngine.setUseGroupingSeparator(true);
this.varsRegistry = new VarsRegistry(mathEngine.getConstantsRegistry(), new AndroidMathEntityDao<>("org.solovyev.android.calculator.CalculatorModel_vars", application, Vars.class)); this.varsRegistry = new VarsRegistry(mathEngine.getConstantsRegistry(), new EntityDao<>("org.solovyev.android.calculator.CalculatorModel_vars", application, Vars.class));
this.functionsRegistry = new FunctionsRegistry(mathEngine.getFunctionsRegistry(), new AndroidMathEntityDao<>("org.solovyev.android.calculator.CalculatorModel_functions", application, Functions.class)); this.functionsRegistry = new FunctionsRegistry(mathEngine.getFunctionsRegistry(), new EntityDao<>("org.solovyev.android.calculator.CalculatorModel_functions", application, Functions.class));
this.operatorsRegistry = new OperatorsRegistry(mathEngine.getOperatorsRegistry(), new AndroidMathEntityDao<>(null, application, null)); this.operatorsRegistry = new OperatorsRegistry(mathEngine.getOperatorsRegistry(), new EntityDao<>(null, application, null));
this.postfixFunctionsRegistry = new PostfixFunctionsRegistry(mathEngine.getPostfixFunctionsRegistry(), new AndroidMathEntityDao<>(null, application, null)); this.postfixFunctionsRegistry = new PostfixFunctionsRegistry(mathEngine.getPostfixFunctionsRegistry(), new EntityDao<>(null, application, null));
} }
private static void migratePreference(@Nonnull SharedPreferences preferences, @Nonnull BooleanPreference preference, @Nonnull String oldKey, @Nonnull SharedPreferences.Editor editor) { private static void migratePreference(@Nonnull SharedPreferences preferences, @Nonnull BooleanPreference preference, @Nonnull String oldKey, @Nonnull SharedPreferences.Editor editor) {

View File

@ -22,25 +22,28 @@
package org.solovyev.android.calculator; package org.solovyev.android.calculator;
import jscl.CustomFunctionCalculationException;
import jscl.math.function.CustomFunction;
import jscl.math.function.Function;
import jscl.math.function.IFunction;
import org.solovyev.android.calculator.function.FunctionBuilderAdapter; import org.solovyev.android.calculator.function.FunctionBuilderAdapter;
import org.solovyev.android.calculator.model.AFunction; import org.solovyev.android.calculator.model.AFunction;
import org.solovyev.android.calculator.model.Functions; import org.solovyev.android.calculator.model.Functions;
import org.solovyev.android.calculator.model.MathEntityBuilder; import org.solovyev.android.calculator.model.MathEntityBuilder;
import org.solovyev.android.calculator.model.EntityDao;
import org.solovyev.common.JBuilder; import org.solovyev.common.JBuilder;
import org.solovyev.common.math.MathRegistry; import org.solovyev.common.math.MathRegistry;
import org.solovyev.common.text.Strings; import org.solovyev.common.text.Strings;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import jscl.CustomFunctionCalculationException;
import jscl.math.function.CustomFunction;
import jscl.math.function.Function;
import jscl.math.function.IFunction;
public class FunctionsRegistry extends BaseEntitiesRegistry<Function, AFunction> { public class FunctionsRegistry extends BaseEntitiesRegistry<Function, AFunction> {
@Nonnull @Nonnull
@ -53,8 +56,8 @@ public class FunctionsRegistry extends BaseEntitiesRegistry<Function, AFunction>
} }
public FunctionsRegistry(@Nonnull MathRegistry<Function> functionsRegistry, public FunctionsRegistry(@Nonnull MathRegistry<Function> functionsRegistry,
@Nonnull MathEntityDao<AFunction> mathEntityDao) { @Nonnull EntityDao<AFunction> entityDao) {
super(functionsRegistry, FUNCTION_DESCRIPTION_PREFIX, mathEntityDao); super(functionsRegistry, FUNCTION_DESCRIPTION_PREFIX, entityDao);
} }
public static void saveFunction(@Nonnull EntitiesRegistry<Function> registry, public static void saveFunction(@Nonnull EntitiesRegistry<Function> registry,
@ -138,7 +141,7 @@ public class FunctionsRegistry extends BaseEntitiesRegistry<Function, AFunction>
@Nonnull @Nonnull
@Override @Override
protected MathEntityPersistenceContainer<AFunction> createPersistenceContainer() { protected PersistedEntitiesContainer<AFunction> createPersistenceContainer() {
return new Functions(); return new Functions();
} }
} }

View File

@ -1,42 +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.android.calculator;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
/**
* User: serso
* Date: 10/7/12
* Time: 6:43 PM
*/
public interface MathEntityDao<T extends MathPersistenceEntity> {
void save(@Nonnull MathEntityPersistenceContainer<T> container);
@Nullable
MathEntityPersistenceContainer<T> load();
@Nullable
String getDescription(@Nonnull String descriptionId);
}

View File

@ -22,15 +22,18 @@
package org.solovyev.android.calculator; package org.solovyev.android.calculator;
import jscl.math.operator.Operator; import org.solovyev.android.calculator.model.EntityDao;
import org.solovyev.common.JBuilder; import org.solovyev.common.JBuilder;
import org.solovyev.common.math.MathRegistry; import org.solovyev.common.math.MathRegistry;
import javax.annotation.Nonnull;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class OperatorsRegistry extends BaseEntitiesRegistry<Operator, MathPersistenceEntity> { import javax.annotation.Nonnull;
import jscl.math.operator.Operator;
public class OperatorsRegistry extends BaseEntitiesRegistry<Operator, PersistedEntity> {
@Nonnull @Nonnull
private static final Map<String, String> substitutes = new HashMap<String, String>(); private static final Map<String, String> substitutes = new HashMap<String, String>();
@ -47,8 +50,8 @@ public class OperatorsRegistry extends BaseEntitiesRegistry<Operator, MathPersis
} }
public OperatorsRegistry(@Nonnull MathRegistry<Operator> functionsRegistry, public OperatorsRegistry(@Nonnull MathRegistry<Operator> functionsRegistry,
@Nonnull MathEntityDao<MathPersistenceEntity> mathEntityDao) { @Nonnull EntityDao<PersistedEntity> entityDao) {
super(functionsRegistry, OPERATOR_DESCRIPTION_PREFIX, mathEntityDao); super(functionsRegistry, OPERATOR_DESCRIPTION_PREFIX, entityDao);
} }
@Nonnull @Nonnull
@ -74,7 +77,7 @@ public class OperatorsRegistry extends BaseEntitiesRegistry<Operator, MathPersis
@Nonnull @Nonnull
@Override @Override
protected JBuilder<? extends Operator> createBuilder(@Nonnull MathPersistenceEntity entity) { protected JBuilder<? extends Operator> createBuilder(@Nonnull PersistedEntity entity) {
return null; //To change body of implemented methods use File | Settings | File Templates. return null; //To change body of implemented methods use File | Settings | File Templates.
} }
@ -84,22 +87,13 @@ public class OperatorsRegistry extends BaseEntitiesRegistry<Operator, MathPersis
} }
@Override @Override
protected MathPersistenceEntity transform(@Nonnull Operator entity) { protected PersistedEntity transform(@Nonnull Operator entity) {
return null; //To change body of implemented methods use File | Settings | File Templates. return null; //To change body of implemented methods use File | Settings | File Templates.
} }
@Nonnull @Nonnull
@Override @Override
protected MathEntityPersistenceContainer<MathPersistenceEntity> createPersistenceContainer() { protected PersistedEntitiesContainer<PersistedEntity> createPersistenceContainer() {
return null; //To change body of implemented methods use File | Settings | File Templates. return null; //To change body of implemented methods use File | Settings | File Templates.
} }
/*
**********************************************************************
*
* STATIC
*
**********************************************************************
*/
} }

View File

@ -24,13 +24,6 @@ package org.solovyev.android.calculator;
import java.util.List; import java.util.List;
/** public interface PersistedEntitiesContainer<T extends PersistedEntity> {
* User: serso List<T> getEntities();
* Date: 12/22/11
* Time: 5:03 PM
*/
public interface MathEntityPersistenceContainer<T extends MathPersistenceEntity> {
public List<T> getEntities();
} }

View File

@ -24,12 +24,7 @@ package org.solovyev.android.calculator;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
/** public interface PersistedEntity {
* User: serso
* Date: 12/22/11
* Time: 5:27 PM
*/
public interface MathPersistenceEntity {
@Nonnull @Nonnull
String getName(); String getName();

View File

@ -22,15 +22,18 @@
package org.solovyev.android.calculator; package org.solovyev.android.calculator;
import jscl.math.operator.Operator; import org.solovyev.android.calculator.model.EntityDao;
import org.solovyev.common.JBuilder; import org.solovyev.common.JBuilder;
import org.solovyev.common.math.MathRegistry; import org.solovyev.common.math.MathRegistry;
import javax.annotation.Nonnull;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class PostfixFunctionsRegistry extends BaseEntitiesRegistry<Operator, MathPersistenceEntity> { import javax.annotation.Nonnull;
import jscl.math.operator.Operator;
public class PostfixFunctionsRegistry extends BaseEntitiesRegistry<Operator, PersistedEntity> {
@Nonnull @Nonnull
private static final Map<String, String> substitutes = new HashMap<String, String>(); private static final Map<String, String> substitutes = new HashMap<String, String>();
@ -45,8 +48,8 @@ public class PostfixFunctionsRegistry extends BaseEntitiesRegistry<Operator, Mat
} }
public PostfixFunctionsRegistry(@Nonnull MathRegistry<Operator> functionsRegistry, public PostfixFunctionsRegistry(@Nonnull MathRegistry<Operator> functionsRegistry,
@Nonnull MathEntityDao<MathPersistenceEntity> mathEntityDao) { @Nonnull EntityDao<PersistedEntity> entityDao) {
super(functionsRegistry, POSTFIX_FUNCTION_DESCRIPTION_PREFIX, mathEntityDao); super(functionsRegistry, POSTFIX_FUNCTION_DESCRIPTION_PREFIX, entityDao);
} }
@ -73,7 +76,7 @@ public class PostfixFunctionsRegistry extends BaseEntitiesRegistry<Operator, Mat
@Nonnull @Nonnull
@Override @Override
protected JBuilder<? extends Operator> createBuilder(@Nonnull MathPersistenceEntity entity) { protected JBuilder<? extends Operator> createBuilder(@Nonnull PersistedEntity entity) {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
@ -83,13 +86,13 @@ public class PostfixFunctionsRegistry extends BaseEntitiesRegistry<Operator, Mat
} }
@Override @Override
protected MathPersistenceEntity transform(@Nonnull Operator entity) { protected PersistedEntity transform(@Nonnull Operator entity) {
return null; return null;
} }
@Nonnull @Nonnull
@Override @Override
protected MathEntityPersistenceContainer<MathPersistenceEntity> createPersistenceContainer() { protected PersistedEntitiesContainer<PersistedEntity> createPersistenceContainer() {
throw new UnsupportedOperationException(); throw new UnsupportedOperationException();
} }
} }

View File

@ -22,19 +22,22 @@
package org.solovyev.android.calculator; package org.solovyev.android.calculator;
import jscl.math.function.IConstant;
import org.solovyev.android.calculator.model.MathEntityBuilder; import org.solovyev.android.calculator.model.MathEntityBuilder;
import org.solovyev.android.calculator.model.EntityDao;
import org.solovyev.android.calculator.model.Var; import org.solovyev.android.calculator.model.Var;
import org.solovyev.android.calculator.model.Vars; import org.solovyev.android.calculator.model.Vars;
import org.solovyev.common.JBuilder; import org.solovyev.common.JBuilder;
import org.solovyev.common.math.MathEntity; import org.solovyev.common.math.MathEntity;
import org.solovyev.common.math.MathRegistry; import org.solovyev.common.math.MathRegistry;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import jscl.math.function.IConstant;
public class VarsRegistry extends BaseEntitiesRegistry<IConstant, Var> { public class VarsRegistry extends BaseEntitiesRegistry<IConstant, Var> {
@Nonnull @Nonnull
@ -52,8 +55,8 @@ public class VarsRegistry extends BaseEntitiesRegistry<IConstant, Var> {
} }
public VarsRegistry(@Nonnull MathRegistry<IConstant> mathRegistry, public VarsRegistry(@Nonnull MathRegistry<IConstant> mathRegistry,
@Nonnull MathEntityDao<Var> mathEntityDao) { @Nonnull EntityDao<Var> entityDao) {
super(mathRegistry, "c_var_description_", mathEntityDao); super(mathRegistry, "c_var_description_", entityDao);
} }
public static <T extends MathEntity> void saveVariable(@Nonnull EntitiesRegistry<T> registry, public static <T extends MathEntity> void saveVariable(@Nonnull EntitiesRegistry<T> registry,
@ -97,7 +100,7 @@ public class VarsRegistry extends BaseEntitiesRegistry<IConstant, Var> {
@Nonnull @Nonnull
@Override @Override
protected MathEntityPersistenceContainer<Var> createPersistenceContainer() { protected PersistedEntitiesContainer<Var> createPersistenceContainer() {
return new Vars(); return new Vars();
} }

View File

@ -22,29 +22,31 @@
package org.solovyev.android.calculator.model; package org.solovyev.android.calculator.model;
import jscl.math.function.IFunction;
import org.simpleframework.xml.Element; import org.simpleframework.xml.Element;
import org.simpleframework.xml.ElementList; import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root; import org.simpleframework.xml.Root;
import org.simpleframework.xml.Transient; import org.simpleframework.xml.Transient;
import org.solovyev.android.calculator.CalculatorParseException; import org.solovyev.android.calculator.CalculatorParseException;
import org.solovyev.android.calculator.Locator; import org.solovyev.android.calculator.Locator;
import org.solovyev.android.calculator.MathPersistenceEntity; import org.solovyev.android.calculator.PersistedEntity;
import org.solovyev.common.math.MathEntity; import org.solovyev.common.math.MathEntity;
import org.solovyev.common.msg.Message; import org.solovyev.common.msg.Message;
import org.solovyev.common.msg.MessageLevel; import org.solovyev.common.msg.MessageLevel;
import org.solovyev.common.text.Strings; import org.solovyev.common.text.Strings;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.io.Serializable; import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import jscl.math.function.IFunction;
@Root(name = "function") @Root(name = "function")
public class AFunction implements IFunction, MathPersistenceEntity, Serializable { public class AFunction implements IFunction, PersistedEntity, Serializable {
@Transient @Transient
private Integer id; private Integer id;

View File

@ -27,21 +27,19 @@ import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.res.Resources; import android.content.res.Resources;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import org.simpleframework.xml.Serializer; import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister; import org.simpleframework.xml.core.Persister;
import org.solovyev.android.calculator.CalculatorApplication; import org.solovyev.android.calculator.CalculatorApplication;
import org.solovyev.android.calculator.MathEntityDao; import org.solovyev.android.calculator.PersistedEntitiesContainer;
import org.solovyev.android.calculator.MathEntityPersistenceContainer; import org.solovyev.android.calculator.PersistedEntity;
import org.solovyev.android.calculator.MathPersistenceEntity;
import java.io.StringWriter;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.io.StringWriter;
public class AndroidMathEntityDao<T extends MathPersistenceEntity> implements MathEntityDao<T> { public class EntityDao<T extends PersistedEntity> {
@Nonnull
private static final String TAG = AndroidMathEntityDao.class.getSimpleName();
@Nullable @Nullable
private final String preferenceString; private final String preferenceString;
@ -50,18 +48,17 @@ public class AndroidMathEntityDao<T extends MathPersistenceEntity> implements Ma
private final Context context; private final Context context;
@Nullable @Nullable
private final Class<? extends MathEntityPersistenceContainer<T>> persistenceContainerClass; private final Class<? extends PersistedEntitiesContainer<T>> persistenceContainerClass;
public AndroidMathEntityDao(@Nullable String preferenceString, public EntityDao(@Nullable String preferenceString,
@Nonnull Application application, @Nonnull Application application,
@Nullable Class<? extends MathEntityPersistenceContainer<T>> persistenceContainerClass) { @Nullable Class<? extends PersistedEntitiesContainer<T>> persistenceContainerClass) {
this.preferenceString = preferenceString; this.preferenceString = preferenceString;
this.context = application; this.context = application;
this.persistenceContainerClass = persistenceContainerClass; this.persistenceContainerClass = persistenceContainerClass;
} }
@Override public void save(@Nonnull PersistedEntitiesContainer<T> container) {
public void save(@Nonnull MathEntityPersistenceContainer<T> container) {
if (preferenceString != null) { if (preferenceString != null) {
final SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context); final SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
final SharedPreferences.Editor editor = settings.edit(); final SharedPreferences.Editor editor = settings.edit();
@ -81,8 +78,7 @@ public class AndroidMathEntityDao<T extends MathPersistenceEntity> implements Ma
} }
@Nullable @Nullable
@Override public PersistedEntitiesContainer<T> load() {
public MathEntityPersistenceContainer<T> load() {
if (persistenceContainerClass != null && preferenceString != null) { if (persistenceContainerClass != null && preferenceString != null) {
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);

View File

@ -24,18 +24,13 @@ package org.solovyev.android.calculator.model;
import org.simpleframework.xml.ElementList; import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root; import org.simpleframework.xml.Root;
import org.solovyev.android.calculator.MathEntityPersistenceContainer; import org.solovyev.android.calculator.PersistedEntitiesContainer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/**
* User: serso
* Date: 12/22/11
* Time: 5:15 PM
*/
@Root @Root
public class Functions implements MathEntityPersistenceContainer<AFunction> { public class Functions implements PersistedEntitiesContainer<AFunction> {
@ElementList(type = AFunction.class) @ElementList(type = AFunction.class)
private List<AFunction> functions = new ArrayList<AFunction>(); private List<AFunction> functions = new ArrayList<AFunction>();

View File

@ -25,7 +25,7 @@ package org.solovyev.android.calculator.model;
import org.simpleframework.xml.Element; import org.simpleframework.xml.Element;
import org.simpleframework.xml.Root; import org.simpleframework.xml.Root;
import org.simpleframework.xml.Transient; import org.simpleframework.xml.Transient;
import org.solovyev.android.calculator.MathPersistenceEntity; import org.solovyev.android.calculator.PersistedEntity;
import org.solovyev.common.JBuilder; import org.solovyev.common.JBuilder;
import org.solovyev.common.math.MathEntity; import org.solovyev.common.math.MathEntity;
import org.solovyev.common.text.Strings; import org.solovyev.common.text.Strings;
@ -44,7 +44,7 @@ import jscl.math.function.IConstant;
*/ */
@Root @Root
public class Var implements IConstant, MathPersistenceEntity { public class Var implements IConstant, PersistedEntity {
@Transient @Transient
private Integer id; private Integer id;

View File

@ -24,7 +24,7 @@ package org.solovyev.android.calculator.model;
import org.simpleframework.xml.ElementList; import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Root; import org.simpleframework.xml.Root;
import org.solovyev.android.calculator.MathEntityPersistenceContainer; import org.solovyev.android.calculator.PersistedEntitiesContainer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -36,7 +36,7 @@ import java.util.List;
*/ */
@Root @Root
public class Vars implements MathEntityPersistenceContainer<Var> { public class Vars implements PersistedEntitiesContainer<Var> {
@ElementList(type = Var.class) @ElementList(type = Var.class)
private List<Var> vars = new ArrayList<Var>(); private List<Var> vars = new ArrayList<Var>();

View File

@ -31,6 +31,7 @@ import org.mockito.Mockito;
import org.robolectric.fakes.RoboSharedPreferences; import org.robolectric.fakes.RoboSharedPreferences;
import org.solovyev.android.calculator.jscl.JsclOperation; import org.solovyev.android.calculator.jscl.JsclOperation;
import org.solovyev.android.calculator.language.Languages; import org.solovyev.android.calculator.language.Languages;
import org.solovyev.android.calculator.model.EntityDao;
import org.solovyev.android.calculator.plot.CalculatorPlotter; import org.solovyev.android.calculator.plot.CalculatorPlotter;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
@ -98,14 +99,14 @@ public class CalculatorTestUtils {
@Nonnull @Nonnull
static Engine newCalculatorEngine() { static Engine newCalculatorEngine() {
final MathEntityDao mathEntityDao = Mockito.mock(MathEntityDao.class); final EntityDao entityDao = Mockito.mock(EntityDao.class);
final JsclMathEngine jsclEngine = JsclMathEngine.getInstance(); final JsclMathEngine jsclEngine = JsclMathEngine.getInstance();
final VarsRegistry varsRegistry = new VarsRegistry(jsclEngine.getConstantsRegistry(), mathEntityDao); final VarsRegistry varsRegistry = new VarsRegistry(jsclEngine.getConstantsRegistry(), entityDao);
final FunctionsRegistry functionsRegistry = new FunctionsRegistry(jsclEngine.getFunctionsRegistry(), mathEntityDao); final FunctionsRegistry functionsRegistry = new FunctionsRegistry(jsclEngine.getFunctionsRegistry(), entityDao);
final OperatorsRegistry operatorsRegistry = new OperatorsRegistry(jsclEngine.getOperatorsRegistry(), mathEntityDao); final OperatorsRegistry operatorsRegistry = new OperatorsRegistry(jsclEngine.getOperatorsRegistry(), entityDao);
final PostfixFunctionsRegistry postfixFunctionsRegistry = new PostfixFunctionsRegistry(jsclEngine.getPostfixFunctionsRegistry(), mathEntityDao); final PostfixFunctionsRegistry postfixFunctionsRegistry = new PostfixFunctionsRegistry(jsclEngine.getPostfixFunctionsRegistry(), entityDao);
return new Engine(jsclEngine, varsRegistry, functionsRegistry, operatorsRegistry, postfixFunctionsRegistry); return new Engine(jsclEngine, varsRegistry, functionsRegistry, operatorsRegistry, postfixFunctionsRegistry);
} }