// Path: psd-parser/src/psd/parser/BlendMode.java
// public enum BlendMode {
//     NORMAL("norm"),
//     DISSOLVE("diss"),
//     DARKEN("dark"),
//     MULTIPLY("mul "),
//     COLOR_BURN("idiv"),
//     LINEAR_BURN("lbrn"),
//     LIGHTEN("lite"),
//     SCREEN("scrn"),
//     COLOR_DODGE("div "),
//     LINEAR_DODGE("lddg"),
//     OVERLAY("over"),
//     SOFT_LIGHT("sLit"),
//     HARD_LIGHT("hLit"),
//     VIVID_LIGHT("vLit"),
//     LINEAR_LIGHT("lLit"),
//     PIN_LIGHT("pLit"),
//     HARD_MIX("hMix"),
//     DIFFERENCE("diff"),
//     EXCLUSION("smud"),
//     HUE("hue "),
//     SATURATION("sat "),
//     COLOR("colr"),
//     LUMINOSITY("lum "),
//     PASS_THROUGH("pass");
// 
//     private String name;
// 
//     private BlendMode(String name) {
//         this.name = name;
//     }
// 
//     public static BlendMode getByName(String name) {
//         for (BlendMode mode : values()) {
//             if (mode.name.equals(name)) {
//                 return mode;
//             }
//         }
//         return null;
//     }
// 
// }
// 
// Path: psd-parser/src/psd/parser/layer/additional/effects/PSDEffect.java
// public abstract class PSDEffect {
// 
//     protected String name;
//     protected boolean isEnabled;
//     protected int version;
// 
//     public PSDEffect(String name){
//         this.name = name;
//     }
// 
//     public PSDEffect() {}
// 
//     public String getName() {
//         return name;
//     }
// 
//     public boolean isEnabled() {
//         return isEnabled;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public void setEnabled(boolean enabled){
//         this.isEnabled = enabled;
//     }
// 
//     public void setVersion(int version) {
//         this.version = version;
//     }
// 
//     public int getVersion() {
//         return version;
//     }
// }


import psd.parser.BlendMode;
import psd.parser.layer.*;
import psd.parser.layer.additional.*;
import psd.parser.layer.additional.effects.PSDEffect;
import psd.util.BufferedImageBuilder;
import java.awt.image.*;
import java.util.*;
/*
 * This file is part of java-psd-library.
 * 
 * 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 3 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 program.  If not, see
 * <http://www.gnu.org/licenses/>.
 */

package psd;



public class Layer implements LayersContainer {
    private int top = 0;
    private int left = 0;
    private int bottom = 0;
    private int right = 0;

    private int alpha = 255;

    private boolean visible = true;
    private boolean clippingLoaded;

    private String name;

    private BufferedImage image;
    private LayerType type = LayerType.NORMAL;

// Path: psd-parser/src/psd/parser/BlendMode.java
// public enum BlendMode {
//     NORMAL("norm"),
//     DISSOLVE("diss"),
//     DARKEN("dark"),
//     MULTIPLY("mul "),
//     COLOR_BURN("idiv"),
//     LINEAR_BURN("lbrn"),
//     LIGHTEN("lite"),
//     SCREEN("scrn"),
//     COLOR_DODGE("div "),
//     LINEAR_DODGE("lddg"),
//     OVERLAY("over"),
//     SOFT_LIGHT("sLit"),
//     HARD_LIGHT("hLit"),
//     VIVID_LIGHT("vLit"),
//     LINEAR_LIGHT("lLit"),
//     PIN_LIGHT("pLit"),
//     HARD_MIX("hMix"),
//     DIFFERENCE("diff"),
//     EXCLUSION("smud"),
//     HUE("hue "),
//     SATURATION("sat "),
//     COLOR("colr"),
//     LUMINOSITY("lum "),
//     PASS_THROUGH("pass");
// 
//     private String name;
// 
//     private BlendMode(String name) {
//         this.name = name;
//     }
// 
//     public static BlendMode getByName(String name) {
//         for (BlendMode mode : values()) {
//             if (mode.name.equals(name)) {
//                 return mode;
//             }
//         }
//         return null;
//     }
// 
// }
// 
// Path: psd-parser/src/psd/parser/layer/additional/effects/PSDEffect.java
// public abstract class PSDEffect {
// 
//     protected String name;
//     protected boolean isEnabled;
//     protected int version;
// 
//     public PSDEffect(String name){
//         this.name = name;
//     }
// 
//     public PSDEffect() {}
// 
//     public String getName() {
//         return name;
//     }
// 
//     public boolean isEnabled() {
//         return isEnabled;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public void setEnabled(boolean enabled){
//         this.isEnabled = enabled;
//     }
// 
//     public void setVersion(int version) {
//         this.version = version;
//     }
// 
//     public int getVersion() {
//         return version;
//     }
// }


// Path: psd-image/src/psd/Layer.java
import psd.parser.BlendMode;
import psd.parser.layer.*;
import psd.parser.layer.additional.*;
import psd.parser.layer.additional.effects.PSDEffect;
import psd.util.BufferedImageBuilder;
import java.awt.image.*;
import java.util.*;

/*
 * This file is part of java-psd-library.
 * 
 * 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 3 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 program.  If not, see
 * <http://www.gnu.org/licenses/>.
 */

package psd;



public class Layer implements LayersContainer {
    private int top = 0;
    private int left = 0;
    private int bottom = 0;
    private int right = 0;

    private int alpha = 255;

    private boolean visible = true;
    private boolean clippingLoaded;

    private String name;

    private BufferedImage image;
    private LayerType type = LayerType.NORMAL;

    private BlendMode layerBlendMode;