Android Open Source - sres Include






From Project

Back to project page sres.

License

The source code is released under:

Apache License

If you think the Android project sres listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package me.tatarka.sres.ast;
/* ww w . ja v a  2s. c  om*/
import org.antlr.v4.runtime.misc.NotNull;

import java.util.*;

/**
 * Created by evan on 3/5/14.
 */
public class Include implements Child {
    public static final String INCLUDE = "include";

    public final String layout;
    public final String id;
    public final java.util.Set<Attribute> attributes;
    public final List<Child> yields;

    public Include(@NotNull java.util.Set<Attribute> attributes, @NotNull List<Child> yields) {
        this.attributes = Collections.unmodifiableSet(attributes);
        this.yields = Collections.unmodifiableList(yields);
        this.layout = findLayout();
        this.id = findId();
    }

    private String findLayout() {
        for (Attribute attribute : attributes) {
            if (attribute.name.equals(Attribute.LAYOUT)) return attribute.value;
        }
        throw new IllegalArgumentException("Include must have a layout");
    }

    private String findId() {
        for (Attribute attribute : attributes) {
            if (attribute.name.equals(Attribute.ID)) return attribute.value;
        }
        return null;
    }

    public static Builder of(String id) {
        return new Builder(id);
    }

    public static class Builder implements Child.Builder {
        private final java.util.Set<Attribute> attributes = new LinkedHashSet<>();
        private final List<Child> yields = new ArrayList<>();

        public Builder(String layout) {
            attribute(new Attribute(Attribute.LAYOUT, layout, Attribute.Namespace.NONE));
        }

        public Builder id(String id) {
            return attribute(Attribute.ID, id);
        }

        public Builder attribute(Attribute attribute) {
            attributes.add(attribute);
            return this;
        }

        public Builder attribute(String name, String value) {
            return attribute(new Attribute(name, value));
        }

        public Builder yield(View view) {
            if (view.id == null) throw new IllegalArgumentException("Yielded view must have an id");
            yields.add(view);
            return this;
        }

        public Builder yield(View.Builder view) {
            View v = view.build();
            if (v.id == null) throw new IllegalArgumentException("Yielded view must have an id");
            yields.add(v);
            return this;
        }

        @Override
        public Include build() {
            return new Include(attributes, yields);
        }
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, attributes);
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null || obj.getClass() != getClass()) return false;
        Include other = (Include) obj;
        return Objects.equals(id, other.id)
                && Objects.equals(attributes, other.attributes);
    }

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder(INCLUDE + "(\n");
        for (Attribute attribute : attributes) {
            builder.append(attribute.toString()).append("\n");
        }
        builder.append(")");

        return builder.toString();
    }
}




Java Source Code List

me.tatarka.sres.AbstractTrackable.java
me.tatarka.sres.Bindable.java
me.tatarka.sres.ChangeTracker.java
me.tatarka.sres.FileFilter.java
me.tatarka.sres.LayoutGenerator.java
me.tatarka.sres.LayoutParser.java
me.tatarka.sres.LayoutSelectorHelper.java
me.tatarka.sres.LayoutSelector.java
me.tatarka.sres.ListView.java
me.tatarka.sres.Main.java
me.tatarka.sres.ObservableAdapter.java
me.tatarka.sres.ObservableArrayList.java
me.tatarka.sres.ObservableListViewHelper.java
me.tatarka.sres.ObservableList.java
me.tatarka.sres.ObservablePagerAdapter.java
me.tatarka.sres.SResBaseVisitor.java
me.tatarka.sres.SResLexer.java
me.tatarka.sres.SResOutput.java
me.tatarka.sres.SResParser.java
me.tatarka.sres.SResVisitor.java
me.tatarka.sres.SRes.java
me.tatarka.sres.SourceInfo.java
me.tatarka.sres.ThreadHandlerImpl.java
me.tatarka.sres.ThreadHandlerProvider.java
me.tatarka.sres.ThreadHandler.java
me.tatarka.sres.Trackable.java
me.tatarka.sres.ViewPager.java
me.tatarka.sres.ast.Attribute.java
me.tatarka.sres.ast.Binding.java
me.tatarka.sres.ast.Child.java
me.tatarka.sres.ast.Converter.java
me.tatarka.sres.ast.Include.java
me.tatarka.sres.ast.RootView.java
me.tatarka.sres.ast.View.java
me.tatarka.sres.idea.SResFileTypeFactory.java
me.tatarka.sres.idea.SResFileType.java
me.tatarka.sres.idea.SResFile.java
me.tatarka.sres.idea.SResIcons.java
me.tatarka.sres.idea.SResLanguage.java
me.tatarka.sres.idea.SResLexer.java
me.tatarka.sres.idea.SResParserDefinition.java
me.tatarka.sres.idea._SResLexer.java
me.tatarka.sres.idea.psi.SResElementType.java
me.tatarka.sres.idea.psi.SResTokenType.java
me.tatarka.sres.impl.SResCodeLayoutGenerator.java
me.tatarka.sres.impl.SResLayoutParser.java
me.tatarka.sres.impl.SResVisitor.java
me.tatarka.sres.impl.SResXmlLayoutGenerator.java
me.tatarka.sres.impl.WriterCodeWriter.java
me.tatarka.sres.property.BooleanProperty.java
me.tatarka.sres.property.ByteProperty.java
me.tatarka.sres.property.CharProperty.java
me.tatarka.sres.property.DoubleProperty.java
me.tatarka.sres.property.FloatProperty.java
me.tatarka.sres.property.IntProperty.java
me.tatarka.sres.property.LongProperty.java
me.tatarka.sres.property.Property.java
me.tatarka.sres.property.ShortProperty.java
me.tatarka.sres.sample.MainActivity.java
me.tatarka.sres.sample.MyListItemView.java
me.tatarka.sres.sample.MyListItem.java
me.tatarka.sres.sample.MyMainView.java
me.tatarka.sres.sample.MyModel.java
me.tatarka.sres.sample.MyView.java
me.tatarka.sres.util.PathTransformer.java