src/share/classes/sun/awt/geom/AreaOp.java
Print this page
rev 9830 : 8039642: Fix raw and unchecked warnings in sun.awt.*
Reviewed-by: darcy, prr
@@ -150,40 +150,40 @@
public abstract int classify(Edge e);
public abstract int getState();
- public Vector calculate(Vector left, Vector right) {
- Vector edges = new Vector();
+ public Vector<Curve> calculate(Vector<Curve> left, Vector<Curve> right) {
+ Vector<Edge> edges = new Vector<>();
addEdges(edges, left, AreaOp.CTAG_LEFT);
addEdges(edges, right, AreaOp.CTAG_RIGHT);
- edges = pruneEdges(edges);
+ Vector<Curve> curves = pruneEdges(edges);
if (false) {
System.out.println("result: ");
- int numcurves = edges.size();
- Curve[] curvelist = (Curve[]) edges.toArray(new Curve[numcurves]);
+ int numcurves = curves.size();
+ Curve[] curvelist = curves.toArray(new Curve[numcurves]);
for (int i = 0; i < numcurves; i++) {
System.out.println("curvelist["+i+"] = "+curvelist[i]);
}
}
- return edges;
+ return curves;
}
- private static void addEdges(Vector edges, Vector curves, int curvetag) {
- Enumeration enum_ = curves.elements();
+ private static void addEdges(Vector<Edge> edges, Vector<Curve> curves, int curvetag) {
+ Enumeration<Curve> enum_ = curves.elements();
while (enum_.hasMoreElements()) {
- Curve c = (Curve) enum_.nextElement();
+ Curve c = enum_.nextElement();
if (c.getOrder() > 0) {
edges.add(new Edge(c, curvetag));
}
}
}
- private static Comparator YXTopComparator = new Comparator() {
- public int compare(Object o1, Object o2) {
- Curve c1 = ((Edge) o1).getCurve();
- Curve c2 = ((Edge) o2).getCurve();
+ private static Comparator<Edge> YXTopComparator = new Comparator<Edge>() {
+ public int compare(Edge o1, Edge o2) {
+ Curve c1 = o1.getCurve();
+ Curve c2 = o2.getCurve();
double v1, v2;
if ((v1 = c1.getYTop()) == (v2 = c2.getYTop())) {
if ((v1 = c1.getXTop()) == (v2 = c2.getXTop())) {
return 0;
}
@@ -193,16 +193,20 @@
}
return 1;
}
};
- private Vector pruneEdges(Vector edges) {
+ private Vector<Curve> pruneEdges(Vector<Edge> edges) {
int numedges = edges.size();
if (numedges < 2) {
- return edges;
+ Vector<Curve> rt = new Vector<>();
+ for (Edge edge: edges) {
+ rt.add(edge.getCurve());
}
- Edge[] edgelist = (Edge[]) edges.toArray(new Edge[numedges]);
+ return rt;
+ }
+ Edge[] edgelist = edges.toArray(new Edge[numedges]);
Arrays.sort(edgelist, YXTopComparator);
if (false) {
System.out.println("pruning: ");
for (int i = 0; i < numedges; i++) {
System.out.println("edgelist["+i+"] = "+edgelist[i]);
@@ -212,13 +216,13 @@
int left = 0;
int right = 0;
int cur = 0;
int next = 0;
double yrange[] = new double[2];
- Vector subcurves = new Vector();
- Vector chains = new Vector();
- Vector links = new Vector();
+ Vector<CurveLink> subcurves = new Vector<>();
+ Vector<ChainEnd> chains = new Vector<>();
+ Vector<CurveLink> links = new Vector<>();
// Active edges are between left (inclusive) and right (exclusive)
while (left < numedges) {
double y = yrange[0];
// Prune active edges that fall off the top of the active y range
for (cur = next = right - 1; cur >= left; cur--) {
@@ -383,25 +387,25 @@
}
}
if (false) {
System.out.println("new links:");
for (int i = 0; i < links.size(); i++) {
- CurveLink link = (CurveLink) links.elementAt(i);
+ CurveLink link = links.elementAt(i);
System.out.println(" "+link.getSubCurve());
}
}
resolveLinks(subcurves, chains, links);
links.clear();
// Finally capture the bottom of the valid Y range as the top
// of the next Y range.
yrange[0] = yend;
}
finalizeSubCurves(subcurves, chains);
- Vector ret = new Vector();
- Enumeration enum_ = subcurves.elements();
+ Vector<Curve> ret = new Vector<>();
+ Enumeration<CurveLink> enum_ = subcurves.elements();
while (enum_.hasMoreElements()) {
- CurveLink link = (CurveLink) enum_.nextElement();
+ CurveLink link = enum_.nextElement();
ret.add(link.getMoveto());
CurveLink nextlink = link;
while ((nextlink = nextlink.getNext()) != null) {
if (!link.absorb(nextlink)) {
ret.add(link.getSubCurve());
@@ -411,11 +415,12 @@
ret.add(link.getSubCurve());
}
return ret;
}
- public static void finalizeSubCurves(Vector subcurves, Vector chains) {
+ public static void finalizeSubCurves(Vector<CurveLink> subcurves,
+ Vector<ChainEnd> chains) {
int numchains = chains.size();
if (numchains == 0) {
return;
}
if ((numchains & 1) != 0) {
@@ -435,13 +440,13 @@
}
private static CurveLink[] EmptyLinkList = new CurveLink[2];
private static ChainEnd[] EmptyChainList = new ChainEnd[2];
- public static void resolveLinks(Vector subcurves,
- Vector chains,
- Vector links)
+ public static void resolveLinks(Vector<CurveLink> subcurves,
+ Vector<ChainEnd> chains,
+ Vector<CurveLink> links)
{
int numlinks = links.size();
CurveLink[] linklist;
if (numlinks == 0) {
linklist = EmptyLinkList;