// Path: src/main/java/com/amanvishnani/sim8085/domain/IData.java
// public interface IData {
//     IData ZERO = Data.from("00");
//     String hexValue();
//     Integer intValue();
//     IOperationResult add(IData data);
//     IOperationResult add(IData data, Integer carry);
//     IOperationResult minus(IData data);
//     IRegister toRegister();
//     public IData getLSB();
// }
// 
// Path: src/main/java/com/amanvishnani/sim8085/domain/IFlags.java
// public interface IFlags {
//     void setFlag(Flag flagName, Integer value);
//     Integer getFlag(Flag flagName);
//     Set<Flag> getKeys();
// }
// 
// Path: src/main/java/com/amanvishnani/sim8085/domain/IOperationResult.java
// public interface IOperationResult {
//     IData getData();
//     IFlags getFlags();
// }


import com.amanvishnani.sim8085.domain.IData;
import com.amanvishnani.sim8085.domain.IFlags;
import com.amanvishnani.sim8085.domain.IOperationResult;
package com.amanvishnani.sim8085.domain.Impl;


public class OperationResult implements IOperationResult {

    private IData data;
    private IFlags flags;

// Path: src/main/java/com/amanvishnani/sim8085/domain/IData.java
// public interface IData {
//     IData ZERO = Data.from("00");
//     String hexValue();
//     Integer intValue();
//     IOperationResult add(IData data);
//     IOperationResult add(IData data, Integer carry);
//     IOperationResult minus(IData data);
//     IRegister toRegister();
//     public IData getLSB();
// }
// 
// Path: src/main/java/com/amanvishnani/sim8085/domain/IFlags.java
// public interface IFlags {
//     void setFlag(Flag flagName, Integer value);
//     Integer getFlag(Flag flagName);
//     Set<Flag> getKeys();
// }
// 
// Path: src/main/java/com/amanvishnani/sim8085/domain/IOperationResult.java
// public interface IOperationResult {
//     IData getData();
//     IFlags getFlags();
// }


// Path: src/main/java/com/amanvishnani/sim8085/domain/Impl/OperationResult.java
import com.amanvishnani.sim8085.domain.IData;
import com.amanvishnani.sim8085.domain.IFlags;
import com.amanvishnani.sim8085.domain.IOperationResult;

package com.amanvishnani.sim8085.domain.Impl;


public class OperationResult implements IOperationResult {

    private IData data;
    private IFlags flags;

    public static IOperationResult from(IData data, Flags flags) {