本文整理汇总了Java中com.ericsson.otp.erlang.OtpErlangObject类的典型用法代码示例。如果您正苦于以下问题:Java OtpErlangObject类的具体用法?Java OtpErlangObject怎么用?Java OtpErlangObject使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
OtpErlangObject类属于com.ericsson.otp.erlang包,在下文中一共展示了OtpErlangObject类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: testParseBig
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
@Test
public void testParseBig()
{
final String text = "{\'this is an atom\',\"this is a string\",[[-234],{}]}";
OtpErlangObject obtained = ErlangLabel.parseText(text);
checkResponse(runner, text, text);
Assert.assertEquals(new OtpErlangTuple(new OtpErlangObject[]{
new OtpErlangAtom("this is an atom"),
new OtpErlangString("this is a string"),
new OtpErlangList(new OtpErlangObject[]{
new OtpErlangList(new OtpErlangObject[]{
new OtpErlangInt(-234)
}),
new OtpErlangTuple(new OtpErlangObject[]{
})
})
}),obtained);
}
示例2: initRunner
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
/** This one has to be called after construction of the runner. */
public void initRunner()
{
// Now create another genserver to handle requests from this runner. Upon failure, the box remains closed.
try
{
mboxOpen = true;
call(new OtpErlangObject[] { new OtpErlangAtom("startrunner"), new OtpErlangAtom(getRunnerName()) }, "Failed to start a new runner.");
genServerToCall = getRunnerName();
}
catch(IllegalArgumentException ex)
{// if anything fails, eliminate this runner
close();
throw(ex);// rethrow
}
}
示例3: close
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
/** Closes the mailbox, causing the linked processes to receive an exception. */
public synchronized void close()
{
synchronized(nameToRunnerMap)
{
if (mboxOpen && !genServerToCall.equals(genServerDefault))
try
{
call(new OtpErlangObject[] { new OtpErlangAtom("terminate") }, 1000);// a short timeout here since we do not care whether we are successful. Dormant processes are not too bad; timeouts on closing mboxes are possibly worse if we are closing many inboxes following unexpected termination of Erlang runtime.
}
catch(IllegalArgumentException ex)
{// if anything fails, ignore this
}
nameToRunnerMap.remove(this);
thisMbox.close();
mboxOpen = false;
}
}
示例4: testToString12
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
/** A bigger structure to dump. */
@Test
public void testToString12()
{
Assert.assertEquals("{\'this is an atom\',\"this is a string\",[[-234],{}]}",
ErlangLabel.dumpErlangObject(new OtpErlangTuple(new OtpErlangObject[]{
new OtpErlangAtom("this is an atom"),
new OtpErlangString("this is a string"),
new OtpErlangList(new OtpErlangObject[]{
new OtpErlangList(new OtpErlangObject[]{
new OtpErlangInt(-234)
}),
new OtpErlangTuple(new OtpErlangObject[]{
})
})
})));
}
示例5: testFsmDiff3a
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
/** Special case of fsmdiff - disconnected states with different names */
@Test
public void testFsmDiff3a()
{
Configuration config = Configuration.getDefaultConfiguration().copy();config.setGdFailOnDuplicateNames(false);
LearnerGraphND grA = new LearnerGraphND(config);
OtpErlangObject grAerlang = ErlangLabel.parseText("{statemachine,['P1000','P1002','N1000'],"+
"[{'P1000','a','P1000'}],"+
"'P1000',"+
"['a']}");
Synapse.StatechumProcess.parseStatemachine(grAerlang,grA,null,true);
LearnerGraphND grB = new LearnerGraphND(config);
Synapse.StatechumProcess.parseStatemachine(ErlangLabel.parseText("{statemachine,['P1000','P1001','N1001'],"+
"[{'P1000','a','P1001'}],"+
"'P1000',"+
"['a']}"),grB,null,true);
OtpErlangObject difference = DifferenceVisualiser.ChangesToGraph.computeGD(grA, grB, config);
Assert.assertEquals("{'statemachinedifference',[{'P1000','a','P1001'}],[{'P1000','a','P1000'}],['N1001','P1001'],['N1000','P1002'],[],'P1000'}",ErlangLabel.dumpErlangObject(difference));
LearnerGraphND shouldBeLikePrevious = new LearnerGraphND(grA,config);
DifferenceVisualiser.ChangesToGraph.load(difference).applyDiff(shouldBeLikePrevious, config);
DifferentFSMException ex = WMethod.checkM(grB, shouldBeLikePrevious);
Assert.assertNull(ex);Assert.assertEquals(grB.getStateNumber(),shouldBeLikePrevious.getStateNumber());
}
示例6: testSetRed3
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
@Test
public void testSetRed3()
{
Configuration config = Configuration.getDefaultConfiguration().copy();config.setGdFailOnDuplicateNames(false);
final LearnerGraphND grA = new LearnerGraphND(config);
OtpErlangObject grAerlang = ErlangLabel.parseText("{statemachine,['P1000','P1002','N1000'],"+
"[{'P1000',a,'P1000'},"+
" {'P1000',b,'P1002'},"+
" {'P1000',c,'N1000'},"+
" {'P1002',c,'P1002'},"+
" {'P1002',d,'P1002'}],"+
"'P1000',"+
"[d,b,c,a]}");
Synapse.StatechumProcess.parseStatemachine(grAerlang,grA,null,true);
Assert.assertEquals(0, grA.getRedStateNumber());
checkForCorrectException(new whatToRun() { public @Override void run() {
Synapse.StatechumProcess.setReds(new OtpErlangList(new OtpErlangObject[]{new OtpErlangString("P1002")}), grA);
}},ClassCastException.class,"OtpErlangString");
}
示例7: loadDependencies
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
/**
* Extracts dependencies of the supplied module, assuming the module has
* been successfully compiled and .beam file exists.
*
* @param file
* the file of the module
* @throws IOException
* if this fails.
*/
public void loadDependencies(File file, Configuration config) {
OtpErlangTuple response = ErlangRunner.getRunner(config.getErlangMboxName()).call(
new OtpErlangObject[] { new OtpErlangAtom("dependencies"),
new OtpErlangAtom(ErlangRunner.getName(file, ErlangRunner.ERL.BEAM, config.getErlangCompileIntoBeamDirectory())) },
"Could not load dependencies of " + file.getName());
// the first element is 'ok'
OtpErlangList listOfDepTuples = (OtpErlangList) response.elementAt(1);
for (OtpErlangObject tup : listOfDepTuples.elements()) {
String mod = ((OtpErlangAtom) ((OtpErlangTuple) tup).elementAt(0)).atomValue();
if (!stdModsList.contains(mod) && !dependencies.contains(mod)) {
dependencies.add(mod);
}
}
}
示例8: testFsmDiff5
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
/** Special case of fsmdiff - disconnected states */
@Test
public void testFsmDiff5()
{
Configuration config = Configuration.getDefaultConfiguration().copy();config.setGdFailOnDuplicateNames(false);
LearnerGraphND grA = new LearnerGraphND(config);
OtpErlangObject grAerlang = ErlangLabel.parseText("{statemachine,['P1000','P1002','N1000'],"+
"[{'P1000','a','P1000'}],"+
"'P1000',"+
"['a']}");
Synapse.StatechumProcess.parseStatemachine(grAerlang,grA,null,true);
LearnerGraphND grB = new LearnerGraphND(config);
Synapse.StatechumProcess.parseStatemachine(ErlangLabel.parseText("{statemachine,['P1000','P1001'],"+
"[{'P1000','a','P1001'}],"+
"'P1000',"+
"['a']}"),grB,null,true);
OtpErlangObject difference = DifferenceVisualiser.ChangesToGraph.computeGD(grA, grB, config);
Assert.assertEquals("{'statemachinedifference',[{'P1000','a','P1001'}],[{'P1000','a','P1000'}],['P1001'],['N1000','P1002'],[],'P1000'}",ErlangLabel.dumpErlangObject(difference));
LearnerGraphND shouldBeLikePrevious = new LearnerGraphND(grA,config);
DifferenceVisualiser.ChangesToGraph.load(difference).applyDiff(shouldBeLikePrevious, config);
DifferentFSMException ex = WMethod.checkM(grB, shouldBeLikePrevious);
Assert.assertNull(ex);Assert.assertEquals(grB.getStateNumber(),shouldBeLikePrevious.getStateNumber());
}
示例9: constructFSM
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
/** Turns the supplied graph into an Erlang tuple.
* @param gr graph to convert.
*/
public static <TARGET_TYPE,CACHE_TYPE extends CachedData<TARGET_TYPE,CACHE_TYPE>> OtpErlangTuple constructFSM(AbstractLearnerGraph<TARGET_TYPE,CACHE_TYPE> gr)
{
List<OtpErlangObject> statesList = new LinkedList<OtpErlangObject>(), transitions = new LinkedList<OtpErlangObject>();
Map<String,OtpErlangObject> alphabet = new TreeMap<String,OtpErlangObject>();
for(Entry<CmpVertex,Map<Label,TARGET_TYPE>> entry:gr.transitionMatrix.entrySet())
{
statesList.add(new OtpErlangAtom(entry.getKey().getStringId()));
for(Entry<Label,TARGET_TYPE> transition:entry.getValue().entrySet())
{
String lblStr = transition.getKey().toErlangTerm();OtpErlangAtom lblAtom = new OtpErlangAtom(lblStr);
alphabet.put(lblStr,lblAtom);
for(CmpVertex target:gr.getTargets(transition.getValue()))
transitions.add(new OtpErlangTuple(new OtpErlangObject[]{new OtpErlangAtom(entry.getKey().getStringId()), lblAtom, new OtpErlangAtom(target.getStringId())}));
}
}
return new OtpErlangTuple(new OtpErlangObject[]{new OtpErlangAtom("statemachine"),new OtpErlangList(statesList.toArray(new OtpErlangObject[0])),
new OtpErlangList(transitions.toArray(new OtpErlangObject[0])),
new OtpErlangAtom(gr.getInit().getStringId()),new OtpErlangList(alphabet.values().toArray(new OtpErlangObject[alphabet.size()])),
});
}
示例10: runDialyzerAndTyperAsAProcessInsideErlang
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
/** Only used for testing against runTyperAsAProcess.
* @throws IOException */
protected String runDialyzerAndTyperAsAProcessInsideErlang(File f) throws IOException
{
ErlangRunner.compileErl(f, runner, true);
OtpErlangObject otpArgs[] = new OtpErlangObject[]{
null,
new OtpErlangList(new OtpErlangObject[]{new OtpErlangString(ErlangRunner.getName(f, ERL.BEAM, true))}),
new OtpErlangString(ErlangRunner.getName(f, ERL.PLT, true)),
new OtpErlangList(new OtpErlangObject[]{new OtpErlangString(ErlangRunner.getName(f, ERL.ERL, false))}),
new OtpErlangAtom("text")
};
otpArgs[0]=new OtpErlangAtom("dialyzer");
runner.call(otpArgs,"Could not run dialyzer");
otpArgs[0]=new OtpErlangAtom("typer");
OtpErlangTuple response = runner.call(otpArgs,"Could not run typer");
return ((OtpErlangString)response.elementAt(1)).stringValue();
}
示例11: testFsmDiff4
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
/** Special case of fsmdiff - disconnected states */
@Test
public void testFsmDiff4()
{
Configuration config = Configuration.getDefaultConfiguration().copy();config.setGdFailOnDuplicateNames(false);
LearnerGraphND grA = new LearnerGraphND(config);
OtpErlangObject grAerlang = ErlangLabel.parseText("{statemachine,['P1000','P1002'],"+
"[{'P1000','a','P1000'}],"+
"'P1000',"+
"['a']}");
Synapse.StatechumProcess.parseStatemachine(grAerlang,grA,null,true);
LearnerGraphND grB = new LearnerGraphND(config);
Synapse.StatechumProcess.parseStatemachine(ErlangLabel.parseText("{statemachine,['P1000','P1001','N1000'],"+
"[{'P1000','a','P1001'}],"+
"'P1000',"+
"['a']}"),grB,null,true);
OtpErlangObject difference = DifferenceVisualiser.ChangesToGraph.computeGD(grA, grB, config);
Assert.assertEquals("{'statemachinedifference',[{'P1000','a','P1001'}],[{'P1000','a','P1000'}],['N1000','P1001'],['P1002'],[],'P1000'}",ErlangLabel.dumpErlangObject(difference));
LearnerGraphND shouldBeLikePrevious = new LearnerGraphND(grA,config);
DifferenceVisualiser.ChangesToGraph.load(difference).applyDiff(shouldBeLikePrevious, config);
DifferentFSMException ex = WMethod.checkM(grB, shouldBeLikePrevious);
Assert.assertNull(ex);Assert.assertEquals(grB.getStateNumber(),shouldBeLikePrevious.getStateNumber());
}
示例12: typeCompatible
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
/** Given that orderedSignatures starts with an atom reflecting the tag of this record,
* checking is identical to that for the tuple.
*/
@Override
public boolean typeCompatible(OtpErlangObject term)
{
if (!(term instanceof OtpErlangTuple)) return false;
OtpErlangTuple tuple = (OtpErlangTuple)term;
if (tuple.arity() != orderedSignatures.size()) return false;
Iterator<Signature> sigIterator = orderedSignatures.iterator();
for(int i=0;i<orderedSignatures.size();++i)
if (!sigIterator.next().typeCompatible(tuple.elementAt(i)))
return false;
return true;
}
示例13: typeCompatible
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
@Override
public boolean typeCompatible(OtpErlangObject term)
{
if (!(term instanceof OtpErlangTuple)) return false;
OtpErlangTuple tuple = (OtpErlangTuple)term;
if (tuple.arity() != elems.size()) return false;
Iterator<Signature> sigIterator = elems.iterator();
for(int i=0;i<elems.size();++i)
{
Signature sig = sigIterator.next();
if (!sig.typeCompatible(tuple.elementAt(i)))
return false;
}
return true;
}
示例14: checkEmptyList
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
/** This method is used to check a tail of an improper list.
* It returns true if a term can be used to make an improper list, false
* otherwise and throws an exception if the supplied term represents a non-empty list. */
public static boolean checkEmptyList(OtpErlangObject term) {
boolean outcome = false;
if (term instanceof OtpErlangList) {
if (((OtpErlangList) term).arity() > 0)
throw new IllegalArgumentException(
"the tail of an improper list cannot be a non-empty list");
outcome = true;
} else if (term instanceof OtpErlangString) {
if (!((OtpErlangString) term).stringValue().isEmpty())
throw new IllegalArgumentException(
"the tail of an improper list cannot be a non-empty string (which is a list)");
outcome = true;
}
return outcome;
}
示例15: dumpErlangObject
import com.ericsson.otp.erlang.OtpErlangObject; //导入依赖的package包/类
public static String dumpErlangObject(OtpErlangObject obj) {
StringBuffer buffer = new StringBuffer();
@SuppressWarnings("rawtypes")
Class cls = obj.getClass();
ErlangParserComponent dumper = classToDumper.get(cls);
while (dumper == null) {
cls = cls.getSuperclass();
if (cls == null)
throw new IllegalArgumentException(
"cannot dump object of type " + obj.getClass());
dumper = classToDumper.get(cls);
}
dumper.dump(obj, buffer);
return buffer.toString();
}