// Path: src/main/java/org/madlonkay/supertmxmerge/data/Report.java
// public class Report {
//     public final int conflicts;
//     public final int added;
//     public final int deleted;
//     public final int modified;
// 
//     public Report(MergeAnalysis analysis, ResolutionSet resolution) {
//         this.conflicts = analysis.conflicts.size();
//         this.added = resolution.toAdd.size();
//         this.deleted = resolution.toDelete.size();
//         this.modified = resolution.toReplace.size();
//     }
//     
//     public Report(MergeAnalysis analysis, DiffAnalysis diff) {
//         this.conflicts = analysis.conflicts.size();
//         this.added = diff.added.size();
//         this.deleted = diff.deleted.size();
//         this.modified = diff.modified.size();
//     }
// 
//     @Override
//     public String toString() {
//         return LocString.getFormat("STM_REPORT_FORMAT", conflicts, added, deleted, modified);
//     }
// }
// 
// Path: src/main/java/org/madlonkay/supertmxmerge/data/ResolutionStrategy.java
// public abstract class ResolutionStrategy {
//     
//     public static final ResolutionStrategy BASE = new ResolutionStrategy() {
//         @Override
//         public ITuv resolveConflict(Key key, ITuv baseTuv, ITuv leftTuv, ITuv rightTuv) {
//             return baseTuv;
//         }
//     };
//     
//     public static final ResolutionStrategy LEFT = new ResolutionStrategy() {
//         @Override
//         public ITuv resolveConflict(Key key, ITuv baseTuv, ITuv leftTuv, ITuv rightTuv) {
//             return leftTuv;
//         }
//     };
//     
//     public static final ResolutionStrategy RIGHT = new ResolutionStrategy() {
//         @Override
//         public ITuv resolveConflict(Key key, ITuv baseTuv, ITuv leftTuv, ITuv rightTuv) {
//             return rightTuv;
//         }
//     };
//         
//     public ResolutionStrategy() {}
//     
//     public ResolutionSet resolve(MergeAnalysis<Key,ITuv> analysis, ITmx baseTmx, ITmx leftTmx, ITmx rightTmx) {
//         ResolutionSet resolution = ResolutionSet.fromAnalysis(analysis, leftTmx, rightTmx);
//         
//         for (Key key : analysis.conflicts) {
//             ITuv baseTuv = baseTmx.get(key);
//             ITuv leftTuv = leftTmx.get(key);
//             ITuv rightTuv = rightTmx.get(key);
//             
//             ITuv selection = resolveConflict(key, baseTuv, leftTuv, rightTuv);
//             
//             if (selection == baseTuv) {
//                 // No change
//             } else if (selection == leftTuv) {
//                 dispatchKey(resolution, key, baseTmx, leftTmx);
//             } else if (selection == rightTuv) {
//                 dispatchKey(resolution, key, baseTmx, rightTmx);
//             } else {
//                 throw new RuntimeException("ResolutionStrategy resolved conflict with unknown ITuv.");
//             }
//         }
//         
//         return resolution;
//     }
// 
//     public abstract ITuv resolveConflict(Key key, ITuv baseTuv, ITuv leftTuv, ITuv rightTuv);
//     
//     private void dispatchKey(ResolutionSet resolution, Key key, ITmx baseTmx, ITmx thisTmx) {
//         if (!thisTmx.containsKey(key)) {
//             resolution.toDelete.add(key);
//         } else if (baseTmx.containsKey(key)) {
//             resolution.toReplace.put(key, thisTmx.get(key));
//         } else {
//             resolution.toAdd.put(key, thisTmx.getTu(key));
//         }
//     }
// }


import org.madlonkay.supertmxmerge.data.Report;
import org.madlonkay.supertmxmerge.data.ResolutionStrategy;
import java.awt.Window;
import java.util.ResourceBundle;
/*
 * Copyright (C) 2014 Aaron Madlon-Kay <aaron@madlon-kay.com>.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA 02110-1301  USA
 */

package org.madlonkay.supertmxmerge;



/**
 *
 * @author Aaron Madlon-Kay <aaron@madlon-kay.com>
 */
public class StmProperties {
    
    private ResourceBundle resource = null;
    private Window parentWindow = null;
    private int listViewThreshold = 5;
    private ResolutionStrategy resolutionStrategy = null;
// Path: src/main/java/org/madlonkay/supertmxmerge/data/Report.java
// public class Report {
//     public final int conflicts;
//     public final int added;
//     public final int deleted;
//     public final int modified;
// 
//     public Report(MergeAnalysis analysis, ResolutionSet resolution) {
//         this.conflicts = analysis.conflicts.size();
//         this.added = resolution.toAdd.size();
//         this.deleted = resolution.toDelete.size();
//         this.modified = resolution.toReplace.size();
//     }
//     
//     public Report(MergeAnalysis analysis, DiffAnalysis diff) {
//         this.conflicts = analysis.conflicts.size();
//         this.added = diff.added.size();
//         this.deleted = diff.deleted.size();
//         this.modified = diff.modified.size();
//     }
// 
//     @Override
//     public String toString() {
//         return LocString.getFormat("STM_REPORT_FORMAT", conflicts, added, deleted, modified);
//     }
// }
// 
// Path: src/main/java/org/madlonkay/supertmxmerge/data/ResolutionStrategy.java
// public abstract class ResolutionStrategy {
//     
//     public static final ResolutionStrategy BASE = new ResolutionStrategy() {
//         @Override
//         public ITuv resolveConflict(Key key, ITuv baseTuv, ITuv leftTuv, ITuv rightTuv) {
//             return baseTuv;
//         }
//     };
//     
//     public static final ResolutionStrategy LEFT = new ResolutionStrategy() {
//         @Override
//         public ITuv resolveConflict(Key key, ITuv baseTuv, ITuv leftTuv, ITuv rightTuv) {
//             return leftTuv;
//         }
//     };
//     
//     public static final ResolutionStrategy RIGHT = new ResolutionStrategy() {
//         @Override
//         public ITuv resolveConflict(Key key, ITuv baseTuv, ITuv leftTuv, ITuv rightTuv) {
//             return rightTuv;
//         }
//     };
//         
//     public ResolutionStrategy() {}
//     
//     public ResolutionSet resolve(MergeAnalysis<Key,ITuv> analysis, ITmx baseTmx, ITmx leftTmx, ITmx rightTmx) {
//         ResolutionSet resolution = ResolutionSet.fromAnalysis(analysis, leftTmx, rightTmx);
//         
//         for (Key key : analysis.conflicts) {
//             ITuv baseTuv = baseTmx.get(key);
//             ITuv leftTuv = leftTmx.get(key);
//             ITuv rightTuv = rightTmx.get(key);
//             
//             ITuv selection = resolveConflict(key, baseTuv, leftTuv, rightTuv);
//             
//             if (selection == baseTuv) {
//                 // No change
//             } else if (selection == leftTuv) {
//                 dispatchKey(resolution, key, baseTmx, leftTmx);
//             } else if (selection == rightTuv) {
//                 dispatchKey(resolution, key, baseTmx, rightTmx);
//             } else {
//                 throw new RuntimeException("ResolutionStrategy resolved conflict with unknown ITuv.");
//             }
//         }
//         
//         return resolution;
//     }
// 
//     public abstract ITuv resolveConflict(Key key, ITuv baseTuv, ITuv leftTuv, ITuv rightTuv);
//     
//     private void dispatchKey(ResolutionSet resolution, Key key, ITmx baseTmx, ITmx thisTmx) {
//         if (!thisTmx.containsKey(key)) {
//             resolution.toDelete.add(key);
//         } else if (baseTmx.containsKey(key)) {
//             resolution.toReplace.put(key, thisTmx.get(key));
//         } else {
//             resolution.toAdd.put(key, thisTmx.getTu(key));
//         }
//     }
// }


// Path: src/main/java/org/madlonkay/supertmxmerge/StmProperties.java
import org.madlonkay.supertmxmerge.data.Report;
import org.madlonkay.supertmxmerge.data.ResolutionStrategy;
import java.awt.Window;
import java.util.ResourceBundle;

/*
 * Copyright (C) 2014 Aaron Madlon-Kay <aaron@madlon-kay.com>.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA 02110-1301  USA
 */

package org.madlonkay.supertmxmerge;



/**
 *
 * @author Aaron Madlon-Kay <aaron@madlon-kay.com>
 */
public class StmProperties {
    
    private ResourceBundle resource = null;
    private Window parentWindow = null;
    private int listViewThreshold = 5;
    private ResolutionStrategy resolutionStrategy = null;
    private Report report = null;