// Path: app/src/main/java/com/tonilopezmr/sample/domain/Subject.java
// public class Subject {
// 
//     private int id;
//     private String name;
// 
//     public Subject(String name) {
//         this.name = name;
//     }
// 
//     public Subject(int id, String name) {
//         this.id = id;
//         this.name = name;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public void setId(int id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     @Override
//     public String toString() {
//         return "ID: "+this.id+" Subject: "+this.name;
//     }
// }
// 
// Path: app/src/main/java/com/tonilopezmr/sample/domain/exception/SubjectException.java
// public class SubjectException extends RuntimeException {
// 
//     private String message;
// 
//     public SubjectException(String detailMessage) {
//         super(detailMessage);
//         this.message = detailMessage;
//     }
// 
//     public SubjectException(Exception exception) {
//         this.setStackTrace(exception.getStackTrace());
//         this.message = exception.getMessage();
//     }
// 
//     @Override
//     public String getMessage() {
//         return message;
//     }
// }
// 
// Path: app/src/main/java/com/tonilopezmr/sample/executor/Interactor.java
// public interface Interactor extends Runnable{
// }


import com.tonilopezmr.sample.domain.Subject;
import com.tonilopezmr.sample.domain.exception.SubjectException;
import com.tonilopezmr.sample.executor.Interactor;
package com.tonilopezmr.sample.domain.interactor;


/**
 * @author toni.
 */
public interface SubjectUseCase extends Interactor {

    interface Callback {
        void onMissionAccomplished(Subject subject);
// Path: app/src/main/java/com/tonilopezmr/sample/domain/Subject.java
// public class Subject {
// 
//     private int id;
//     private String name;
// 
//     public Subject(String name) {
//         this.name = name;
//     }
// 
//     public Subject(int id, String name) {
//         this.id = id;
//         this.name = name;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public void setId(int id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     @Override
//     public String toString() {
//         return "ID: "+this.id+" Subject: "+this.name;
//     }
// }
// 
// Path: app/src/main/java/com/tonilopezmr/sample/domain/exception/SubjectException.java
// public class SubjectException extends RuntimeException {
// 
//     private String message;
// 
//     public SubjectException(String detailMessage) {
//         super(detailMessage);
//         this.message = detailMessage;
//     }
// 
//     public SubjectException(Exception exception) {
//         this.setStackTrace(exception.getStackTrace());
//         this.message = exception.getMessage();
//     }
// 
//     @Override
//     public String getMessage() {
//         return message;
//     }
// }
// 
// Path: app/src/main/java/com/tonilopezmr/sample/executor/Interactor.java
// public interface Interactor extends Runnable{
// }


// Path: app/src/main/java/com/tonilopezmr/sample/domain/interactor/SubjectUseCase.java
import com.tonilopezmr.sample.domain.Subject;
import com.tonilopezmr.sample.domain.exception.SubjectException;
import com.tonilopezmr.sample.executor.Interactor;

package com.tonilopezmr.sample.domain.interactor;


/**
 * @author toni.
 */
public interface SubjectUseCase extends Interactor {

    interface Callback {
        void onMissionAccomplished(Subject subject);
        void onError(SubjectException ex);