// Path: src/main/java/model/HolyKnight.java
// public class HolyKnight extends AbstractKnight {
// 
//     public String getName() {
// 	return "Holy Knight is my name!";
//     }
// 
//     @Override
//     public String toString() {
// 	return "HolyKnight [getName()=" + getName() + ", getWeapon()=" + getWeapon() + "]";
//     }
// 
//     @Override
//     public Integer getDamage() {
// 	return super.getDamage() * 1;
//     }
// 
// }
// 
// 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.HolyKnight;
import model.Knight;
package creational.abstractfactory;


/**
 * 
 * @author prvoslav
 *
 */
public class HolyFactory implements Factory {

    public Knight getKnight() {
// Path: src/main/java/model/HolyKnight.java
// public class HolyKnight extends AbstractKnight {
// 
//     public String getName() {
// 	return "Holy Knight is my name!";
//     }
// 
//     @Override
//     public String toString() {
// 	return "HolyKnight [getName()=" + getName() + ", getWeapon()=" + getWeapon() + "]";
//     }
// 
//     @Override
//     public Integer getDamage() {
// 	return super.getDamage() * 1;
//     }
// 
// }
// 
// 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/creational/abstractfactory/HolyFactory.java
import model.HolyKnight;
import model.Knight;

package creational.abstractfactory;


/**
 * 
 * @author prvoslav
 *
 */
public class HolyFactory implements Factory {

    public Knight getKnight() {
	return new HolyKnight();