February 01, 2011
Mark Wielaard: New GPG key.
Finally created a new GPG key using gnupg. The old one was a DSA/1024 bits one and 8 years old. The new one is a RSA/2048 bits one. I will use the new one in the future to sign any release tarballs I might create. pub 2048R/57816A6A 2011-01-29 Key f...
More »
February 01, 2011
Andrew Hughes: [SECURITY] IcedTea6 1.7.8, 1.8.5, 1.9.5 Released!.
We are pleased to announce a new set of security releases, IcedTea6 1.7.8, IcedTea6 1.8.5 and IcedTea6 1.9.5.
This update contains the following security updates:
The IcedTea project provides a harness to build the source code from OpenJDK6 u...
More »
December/2024
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | |
|
|
Another example of as(...) used for easily extensible APIs
Here's another simple example of how the as(...) idiom can be used for create an API which is stable, elegant, but extensible (this time unrelated to any semantic stuff). Up to a few days ago, I had the following interface in the GeoCoding API of forceTen:
public interface GeoCoderEntity extends Comparable, Serializable, As, Lookup.Provider
{
public enum Type
{
...
};
@Nonnull
public String getId();
@Nonnull
public Coordinate getCoordinate();
@Nonnull
public String getCode();
@Nonnull
public String getTypeAsString();
@Nonnull
public Type getType();
@Nonnull
public Collection findAllChildren();
@Nonnull
public GeoCoderEntity getParent()
throws NotFoundException;
@Override @Nonnull
public T as (@Nonnull Class personalityType);
@Override @Nonnull
public T as (@Nonnull Class personalityType, @Nonnull NotFoundBehaviour notFoundBehaviour);
&...
Date: December, 28 2009
Url: http://www.java.net/blog/fabriziogiudici/archive/2009/12/28/another-example-used-easily-extensible-apis
Others News
|