Algorithm-VSM
view release on metacpan or search on metacpan
examples/corpus/ExtendedInterface.java view on Meta::CPAN
public void setPosition( double x, double y ) {
this.x = x; this.y = y;
}
public void draw( DrawWindow dw ) { dw.drawCircle( x, y, r, c ); }
public void drawScaledShape( int scaleFactor,
DrawWindow dw ) {
dw.drawScaledCircle( x, y, r, c, scaleFactor );
}
}
class Color { int R, G, B; }
class DrawWindow {
public DrawWindow() {};
public void drawRect( double x, double y,
double width, double height, Color col ) {
System.out.println( //(A)
"Code for drawing a rect needs to be invoked" );
}
public void drawScaledRect( double x, double y, double width,
double height, Color col, int scale ){
System.out.println( //(B)
"Code for drawing a scaled rect needs to be invoked" );
}
public void drawCircle( double x, double y,
double radius, Color col ) {
System.out.println( //(C)
"Code for drawing a circle needs to be invoked" );
}
public void drawScaledCircle( double x, double y, double radius,
Color col, int scale ){
System.out.println( //(D)
"Code for drawing a scaled circle needs to be invoked" );
}
}
class Test {
public static void main( String[] args )
{
Shape[] shapes = new Shape[3];
DrawScalable[] drawScalables = new DrawScalable[3];
DrawScalableCircle dc = new DrawScalableCircle( 1.1 );
DrawScalableRectangle dr1 =
new DrawScalableRectangle( 2.5, 3.5 );
DrawScalableRectangle dr2 =
new DrawScalableRectangle( 2.3, 4.5 );
shapes[0] = dc;
shapes[1] = dr1;
shapes[2] = dr2;
drawScalables[0] = dc;
drawScalables[1] = dr1;
drawScalables[2] = dr2;
int total_area = 0;
DrawWindow dw = new DrawWindow();
for (int i = 0; i < shapes.length; i++ ) {
total_area += shapes[i].area();
drawScalables[i].setPosition( i*10.0, i*10.0 );
drawScalables[i].drawScaledShape( 2, dw );
}
System.out.println("Total area = " + total_area); //(E)
}
}
( run in 0.693 second using v1.01-cache-2.11-cpan-39bf76dae61 )