at:tutorial:symbiosis
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revisionNext revisionBoth sides next revision | ||
at:tutorial:symbiosis [2007/03/31 13:37] – created tvcutsem | at:tutorial:symbiosis [2007/06/19 10:47] – jdedecker | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | < | ||
+ | |||
====== Symbiosis with Java ====== | ====== Symbiosis with Java ====== | ||
- | < | + | AmbientTalk |
- | AmbientTalk is fully implemented in Java and runs on top of the JVM. Java provides an extensive class library | + | The reverse, namely |
- | This chapter explains how this symbiosis | + | This chapter explains how both sides of this symbiotic relationship |
- | * How to access | + | ===== Symbiosis Architecture ===== |
- | * How to access | + | AmbientTalk has been implemented in Java. Because of this, Java plays two roles: it is both a symbiont language |
+ | |||
+ | {{: | ||
===== Accessing Java classes ===== | ===== Accessing Java classes ===== | ||
+ | The complete set of classes that are available in the class path of a running JVM are accessible from AmbientTalk through the jlobby object. | ||
+ | |||
+ | < | ||
+ | >def Vector := jlobby.java.util.Vector | ||
+ | >>< | ||
+ | </ | ||
===== Creating Java objects ===== | ===== Creating Java objects ===== | ||
+ | Java classes can be instantiated in AmbientTalk similar to how AmbientTalk objects are instantiated, | ||
+ | the Java constructor. For example, in the snippet code below **new** method is invoked on the class **Vector**. | ||
- | ===== Using Java wrappers | + | < |
+ | >def aVector := Vector.new() | ||
+ | >>< | ||
+ | </ | ||
+ | |||
+ | All constructors defined in the corresponding Java class can be accessed too. For example, | ||
+ | |||
+ | < | ||
+ | >aVector := Vector.new(30) | ||
+ | >>< | ||
+ | </ | ||
+ | |||
+ | ===== Invoking methods on Java objects | ||
+ | Java objects appear as AmbientTalk objects whose field and method slots correspond to public instance-level fields and methods in the Java object. These are accessed or invoked as if they were plain AmbientTalk slots. | ||
+ | |||
+ | < | ||
+ | >1.to: 10 do: { |i| aVector.add(i) } | ||
+ | >> | ||
+ | > | ||
+ | >>< | ||
+ | </ | ||
+ | |||
+ | The AmbientTalk/ | ||
===== Overloading ===== | ===== Overloading ===== | ||
+ | |||
+ | ===== Concurrency ===== | ||
+ | |||
+ | ===== Distribution ===== | ||
+ | |||
+ | ===== Using Java wrappers ===== | ||
===== Symbionts ===== | ===== Symbionts ===== |
at/tutorial/symbiosis.txt · Last modified: 2013/05/17 20:25 by tvcutsem