TS 69 JavaFX Refactoring

(Difference between revisions)
(Refactoring)
Line 1: Line 1:
-
==Refactoring ==
+
=Refactoring =
'''Author:''' [mailto:sunflower@netbeans.org Alexandr Scherbatiy] <br>
'''Author:''' [mailto:sunflower@netbeans.org Alexandr Scherbatiy] <br>
Line 13: Line 13:
'''Refactoring Ubrella issue''': [http://www.netbeans.org/issues/show_bug.cgi?id=173077 173077]
'''Refactoring Ubrella issue''': [http://www.netbeans.org/issues/show_bug.cgi?id=173077 173077]
----
----
-
 
==Variable==
==Variable==
-
# {{testcase|Name}}
+
=== {{testcase|Name}} ===
* Type in the editor:  
* Type in the editor:  
<pre>
<pre>
Line 45: Line 44:
==Function ==
==Function ==
-
# {{testcase|Name}}
+
=== {{testcase|Name}} ===
* Type in the editor:  
* Type in the editor:  
<pre>
<pre>
Line 56: Line 55:
function sqr(x:Number):Number{ x * x}
function sqr(x:Number):Number{ x * x}
</pre>
</pre>
-
# {{testcase|Argument}}
+
 
 +
=== {{testcase|Argument}} ===
* Type in the editor:  
* Type in the editor:  
<pre>
<pre>
Line 67: Line 67:
function sqr(y:Number):Number{ y * y}
function sqr(y:Number):Number{ y * y}
</pre>
</pre>
-
# {{testcase|Return Type}}
+
 
 +
=== {{testcase|Return Type}} ===
* Type in the editor:  
* Type in the editor:  
<pre>
<pre>
Line 86: Line 87:
==Sequence==
==Sequence==
-
# {{testcase|Name}}
+
=== {{testcase|Name}} ===
* Type in the editor:  
* Type in the editor:  
<pre>
<pre>
Line 105: Line 106:
==Package==
==Package==
-
# {{testcase|Name}}
+
=== {{testcase|Name}} ===
*  Create '''a''' package
*  Create '''a''' package
*  Create '''A''' JavaFX class under the package  
*  Create '''A''' JavaFX class under the package  
Line 125: Line 126:
}
}
</pre>
</pre>
-
# {{testcase|Drag And Drop }}
+
=== {{testcase|Drag And Drop }} ===
*  Create '''a''' package
*  Create '''a''' package
*  Create '''A''' JavaFX class under the package  
*  Create '''A''' JavaFX class under the package  
Line 146: Line 147:
}
}
</pre>
</pre>
-
# {{testcase|Default package}}
+
=== {{testcase|Default package}} ===
* Have a JavaFX class in any package
* Have a JavaFX class in any package
* Refactor -> Move it into empty package
* Refactor -> Move it into empty package
Line 155: Line 156:
==Class==
==Class==
-
# {{testcase|Name}}
+
=== {{testcase|Name}} ===
* Type in the editor:  
* Type in the editor:  
<pre>
<pre>
Line 172: Line 173:
function f(a:B):B { B{} }
function f(a:B):B { B{} }
</pre>
</pre>
-
# {{testcase|Attribute name }}
+
=== {{testcase|Attribute name }} ===
* Type in the editor:  
* Type in the editor:  
<pre>
<pre>
Line 195: Line 196:
println(a.attr2);
println(a.attr2);
</pre>
</pre>
-
# {{testcase|Attribute Type}}
+
=== {{testcase|Attribute Type}} ===
* Type in the editor:  
* Type in the editor:  
<pre>
<pre>
Line 214: Line 215:
var a = B{ attr: B{} };
var a = B{ attr: B{} };
</pre>
</pre>
-
# {{testcase|Attribute Default Value}}
+
=== {{testcase|Attribute Default Value}} ===
* Type in the editor:  
* Type in the editor:  
<pre>
<pre>
Line 233: Line 234:
var a = B{ attr: B{} };
var a = B{ attr: B{} };
</pre>
</pre>
-
# {{testcase|Inheritence}}
+
=== {{testcase|Inheritence}} ===
* Type in the editor:  
* Type in the editor:  
<pre>
<pre>
Line 246: Line 247:
class B extends D{}
class B extends D{}
</pre>
</pre>
-
# {{testcase|Mixin}}
+
=== {{testcase|Mixin}} ===
* Type in the editor:  
* Type in the editor:  
<pre>
<pre>
Line 269: Line 270:
==Operators==
==Operators==
-
# {{testcase|While loop}}
+
=== {{testcase|While loop}} ===
* Type in the editor:  
* Type in the editor:  
<pre>
<pre>
Line 288: Line 289:
}
}
</pre>
</pre>
-
# {{testcase|For loop}}
+
=== {{testcase|For loop}} ===
* Type in the editor:  
* Type in the editor:  
<pre>
<pre>

Revision as of 10:35, 4 August 2010

Refactoring

Author: Alexandr Scherbatiy
Version: 1.2
Last update: 4 August 2010
Introduction:
Comments:


Contents


Refactoring Ubrella issue: 173077


Variable

Name

  • Type in the editor:
public var a = 10;
public var b = a + 10;
  • Refactor->Rename the a variable to c
    • Code should be compilable
    • The result should be
public var c = 10; public var b = c + 10;
  1. Type
  • Type in the editor:
var a:A;
class A{
}
  • Refactor->Rename the A type of the a variable to B
    • Code should be compilable
    • The result should be
var a:B;
class B{}



Function

Name

  • Type in the editor:
function f(x:Number):Number{ x * x} 
  • Refactor->Rename the f function to sqr
    • Code should be compilable
    • The result should be
function sqr(x:Number):Number{ x * x}

Argument

  • Type in the editor:
function sqr(x:Number):Number{ x * x}
  • Refactor->Rename the x argument to y
    • Code should be compilable
    • The result should be
function sqr(y:Number):Number{ y * y}

Return Type

  • Type in the editor:
class A{}
function f(a:A):A{ A{} }
  • Refactor->Rename the A function return type to B
    • Code should be compilable
    • The result should be
class B{}
function f(a:B):B{ B{} }



Sequence

Name

  • Type in the editor:
var seq = [1,2,3,4,5];
var sqr = for(n in seq) seq[[N | n]] * seq[N];
  • Refactor->Rename the seq sequence to s
    • Code should be compilable
    • The result should be
var s = [1,2,3,4,5];
var sqr = for(n in s) s[[N | n]] * s[N];



Package

Name

  • Create a package
  • Create A JavaFX class under the package
package a;

public class A {

}
  • Refactor->Rename the a package to b
    • Code should be compilable
    • The A class should have the b package
package b;

public class A {

}

Drag And Drop

  • Create a package
  • Create A JavaFX class under the package
package a;

public class A {

}
  • Create b package
  • Drag and drop the A class to the b package
    • Code should be compilable
    • The A class should have the b package
package b;

public class A {

}

Default package

  • Have a JavaFX class in any package
  • Refactor -> Move it into empty package
    • Class is moved without any error. There is no package line in source code


Class

Name

  • Type in the editor:
class A{};
var a = A{};

function f(a:A):A { A{} }
  • Refactor->Rename the A class to B
    • Code should be compilable
    • The result should be
class B{};

var a = B{};
function f(a:B):B { B{} }

Attribute name

  • Type in the editor:
class A{
    public var attr:String;
};

var a = A{ attr: "Hello World" };

println(a.attr);
  • Refactor->Rename the attr attribute name to attr2
    • Code should be compilable
    • The result should be
class A{
    public var attr2:String;
};

var a = A{ attr2: "Hello World" };

println(a.attr2);

Attribute Type

  • Type in the editor:
class A{
    public var attr:A;
};

var a = A{ attr: A{} };
  • Refactor->Rename the A type of the attr_ attribute to B__
    • Code should be compilable
    • The result should be
class B{
    public var attr:B;
};

var a = B{ attr: B{} };

Attribute Default Value

  • Type in the editor:
class A{
    public var attr:A = A{};
};

var a = A{ attr: A{} };
  • Refactor->Rename the A default value of the attr_ attribute to B__
    • Code should be compilable
    • The result should be
class B{
    public var attr:B = B{};
};

var a = B{ attr: B{} };

Inheritence

  • Type in the editor:
class A{}
class B extends A{}
  • Refactor->Rename the A class to D
    • Code should be compilable
    • The result should be
class D{}
class B extends D{}

Mixin

  • Type in the editor:
class A{}
mixin class M{}
class B extends A, M{}
  • Refactor->Rename the M class to N
    • Code should be compilable
    • The result should be
class A{}
mixin class N{}
class B extends A, N{}




Operators

While loop

  • Type in the editor:
var f = true;

while(f){
    f = not f;
}
  • Refactor->Rename the f variable to g in the 'while(f){' line
    • Code should be compilable
    • The result should be
var g = true;

while(g){
    g = not g;
}

For loop

  • Type in the editor:
var s = [1,2,3,4,5];
var t = for(n in s) s[N] * indexof n;
  • Refactor->Rename the n loop variable to m
    • Code should be compilable
    • The result should be
var s = [1,2,3,4,5];
var t = for(m in s) s[M] * indexof m;



-- Main.AlexandrScherbatiy - 22 Sep 2009

Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo