// Path: src/main/java/model/Knight.java
// public interface Knight {
//     String getName();
// 
//     void setWeapon(KnightWeapon knightWeapon);
// 
//     KnightWeapon getWeapon();
// 
//     Knight cloneKnight() throws CloneNotSupportedException;
// 
//     Integer getDamage();
// 
//     void readQuest(String questDetails);
// 
//     Double getArmor();
// 
//     void reduceArmor(Double reduceValue);
// 
// }


import model.Knight;
package structural.proxy;


public class Main {

    public static void main(String[] args) {
// Path: src/main/java/model/Knight.java
// public interface Knight {
//     String getName();
// 
//     void setWeapon(KnightWeapon knightWeapon);
// 
//     KnightWeapon getWeapon();
// 
//     Knight cloneKnight() throws CloneNotSupportedException;
// 
//     Integer getDamage();
// 
//     void readQuest(String questDetails);
// 
//     Double getArmor();
// 
//     void reduceArmor(Double reduceValue);
// 
// }


// Path: src/main/java/structural/proxy/Main.java
import model.Knight;

package structural.proxy;


public class Main {

    public static void main(String[] args) {
	Knight knightProxy = new MajesticKnightProxy();