Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
__pycache__/

OpenAI_key.txt
DeepSeek_key.txt
/.venv
42 changes: 42 additions & 0 deletions Data/ExternalDataset/COLLAPSE HIERARCHY/BeforeRefact.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
class Animal {
private String name;

public Animal(String name) {
this.name = name;
}

public String getName() {
return name;
}

public void makeSound() {
System.out.println("Generic animal sound");
}
}

class Dog extends Animal {
public Dog(String name) {
super(name);
}

@Override
public void makeSound() {
System.out.println("Woof!");
}

public void wagTail() {
System.out.println("Tail wagging");
}
}

public class Main {
public static void main(String[] args) {
Dog myDog = new Dog("Buddy");
myDog.makeSound();
myDog.wagTail();

Animal myAnimal = new Animal("Generic");
myAnimal.makeSound();

}
}
43 changes: 43 additions & 0 deletions Data/ExternalDataset/COLLAPSE HIERARCHY/PostRefact.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
class Animal {
private String name;
private boolean canWagTail; // Added flag

public Animal(String name, boolean canWagTail) {
this.name = name;
this.canWagTail = canWagTail;
}

public String getName() {
return name;
}

public void makeSound() {
System.out.println("Generic animal sound");
}

public void makeSound(boolean isDog) { // Overloaded method
if (isDog) {
System.out.println("Woof!");
} else {
System.out.println("Generic animal sound");
}
}


public void wagTail() {
if (canWagTail) {
System.out.println("Tail wagging");
}
}
}

public class Main {
public static void main(String[] args) {
Animal myDog = new Animal("Buddy", true); // Dog can wag tail
myDog.makeSound(true); // Call dog sound
myDog.wagTail();

Animal myAnimal = new Animal("Generic", false); // Generic animal can't wag
myAnimal.makeSound(false);
}
}
13 changes: 13 additions & 0 deletions Data/ExternalDataset/INLINE VARIABLE/BeforeRefact.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
public class CalculateTotalPrice {

public double calculate(int quantity, double pricePerUnit) {
double basePrice = quantity * pricePerUnit; // The variable to be inlined
return basePrice * 1.10; // Applying tax
}

public static void main(String[] args) {
CalculateTotalPrice calculator = new CalculateTotalPrice();
double totalPrice = calculator.calculate(5, 10.0);
System.out.println("Total Price: " + totalPrice);
}
}
12 changes: 12 additions & 0 deletions Data/ExternalDataset/INLINE VARIABLE/PostRefact.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
public class CalculateTotalPrice {

public double calculate(int quantity, double pricePerUnit) {
return (quantity * pricePerUnit) * 1.10; // Inlined the variable
}

public static void main(String[] args) {
CalculateTotalPrice calculator = new CalculateTotalPrice();
double totalPrice = calculator.calculate(5, 10.0);
System.out.println("Total Price: " + totalPrice);
}
}
53 changes: 53 additions & 0 deletions Data/ExternalDataset/PULL UP FIELD/BeforeRefact.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
class Employee {
private String name;

public Employee(String name) {
this.name = name;
}

public String getName() {
return name;
}

// ... other methods
}

class Manager extends Employee {
private String department; // Field to be pulled up

public Manager(String name, String department) {
super(name);
this.department = department;
}

public String getDepartment() {
return department;
}

// ... other methods that use department
}

class Developer extends Employee {
private String department; // Duplicate field

public Developer(String name, String department) {
super(name);
this.department = department;
}

public String getDepartment() {
return department;
}

// ... other methods that use department
}

public class Main {
public static void main(String[] args) {
Manager mgr = new Manager("Alice", "Sales");
Developer dev = new Developer("Bob", "Development");

System.out.println(mgr.getDepartment());
System.out.println(dev.getDepartment());
}
}
45 changes: 45 additions & 0 deletions Data/ExternalDataset/PULL UP FIELD/PostRefact.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
class Employee {
private String name;
private String department; // Field pulled up

public Employee(String name, String department) {
this.name = name;
this.department = department;
}

public String getName() {
return name;
}

public String getDepartment() {
return department;
}

// ... other methods (potentially moved from subclasses)
}

class Manager extends Employee {
public Manager(String name, String department) {
super(name, department); // Call superclass constructor
}

// ... other Manager-specific methods
}

class Developer extends Employee {
public Developer(String name, String department) {
super(name, department); // Call superclass constructor
}

// ... other Developer-specific methods
}

public class Main {
public static void main(String[] args) {
Manager mgr = new Manager("Alice", "Sales");
Developer dev = new Developer("Bob", "Development");

System.out.println(mgr.getDepartment());
System.out.println(dev.getDepartment());
}
}
45 changes: 45 additions & 0 deletions Data/ExternalDataset/PUSH DOWN FIELD/BeforeRefact.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
class Employee {
private String name;
private String project; // Field to be pushed down

public Employee(String name, String project) {
this.name = name;
this.project = project;
}

public String getName() {
return name;
}

public String getProject() {
return project;
}

//... other methods, some of which use 'project'
}

class Developer extends Employee {
public Developer(String name, String project) {
super(name, project);
}

//... Developer-specific methods that use 'project'
}

class Manager extends Employee {
public Manager(String name) {
super(name, null); // Managers don't have a project
}

//... Manager-specific methods (don't use 'project')
}

public class Main {
public static void main(String args) {
Developer dev = new Developer("Bob", "Cool Project");
Manager mgr = new Manager("Alice");

System.out.println(dev.getProject()); // OK
System.out.println(mgr.getProject()); // Null, not ideal
}
}
46 changes: 46 additions & 0 deletions Data/ExternalDataset/PUSH DOWN FIELD/PostRefact.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
class Employee {
private String name;

public Employee(String name) {
this.name = name;
}

public String getName() {
return name;
}

// ... other methods (no longer use 'project')
}

class Developer extends Employee {
private String project; // Field pushed down

public Developer(String name, String project) {
super(name);
this.project = project;
}

public String getProject() {
return project;
}

// ... Developer-specific methods that use 'project'
}

class Manager extends Employee {
public Manager(String name) {
super(name);
}

// ... Manager-specific methods
}

public class Main {
public static void main(String[] args) {
Developer dev = new Developer("Bob", "Cool Project");
Manager mgr = new Manager("Alice");

System.out.println(dev.getProject()); // OK
// System.out.println(mgr.getProject()); // Compile error! Much better!
}
}
55 changes: 55 additions & 0 deletions Data/ExternalDataset/PUSH DOWN METHOD/BeforeRefact.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
class Employee {
private String name;

public Employee(String name) {
this.name = name;
}

public String getName() {
return name;
}

public String getProjectDetails() { // Method to be pushed down
return "No project assigned"; // Default implementation
}

// ... other methods
}

class Developer extends Employee {
private String project;

public Developer(String name, String project) {
super(name);
this.project = project;
}

public String getProject() {
return project;
}

@Override
public String getProjectDetails() {
return "Project: " + project + ", Status: In Progress";
}

// ... Developer-specific methods
}

class Manager extends Employee {
public Manager(String name) {
super(name);
}

// ... Manager-specific methods (don't use 'getProjectDetails')
}

public class Main {
public static void main(String[] args) {
Developer dev = new Developer("Bob", "Cool Project");
Manager mgr = new Manager("Alice");

System.out.println(dev.getProjectDetails()); // OK
System.out.println(mgr.getProjectDetails()); // "No project assigned", not ideal
}
}
Loading