From CaesarJ Homepage

Caesar: ReleaseNotes040

< Back

Release Notes v0.4.0

What's new?

CaesarJ Compiler

Virtual Class Scoping
 
public cclass A {
    public cclass X {...}
    public cclass Y extends X {...}
}

public cclass B extends A {
    public cclass Z extends Y {...}
}

In the earlier versions it was necessary to make an empty redefiniton of Y in B. The current compiler version extends the Java lookup rules, hence, extends Y is recognized as B.Y, rather than A.Y.

Method redefinition Mechanism

Methods having in their signatures references to virtual classes can be redefined now.
 
public cclass A {
    public cclass X {...}
    public void doSomethingWithX(X x) {...}
}

public cclass B extends A {
    public cclass X {...} // furtherbinding 
    public void doSomethingWithX(X x) {...}
}

In the current version the compiler will automatically ensure that the signatures of the redefined methods are compatible to the method redefiniton mechanism provided by Java.

Automatic Casts

Expressions which have a virtual types are automatically casted to the most specific type, which can be statically determined.
 
public cclass A {
    private X x;
    public cclass X {...}
}

public cclass B extends A {
    public cclass X {
        public void someNewMethodIntroduced() {...}
    }

    public void doSomething() {
        // The reference x is casted to the most specific X known in the context
        x.someNewMethodIntroduced();
    }
}

CJDT

Bug Fixes

Please consider the bugtracking tool [http://www.st.informatik.tu-darmstadt.de:8080/mantis/] for the list of open/resolved bugs.

Known Limitations

Retrieved from http://caesarj.org/index.php/Caesar/ReleaseNotes040
Page last modified on October 27, 2004, at 04:30 PM