package com.github.dreamhead.moco.parser.model; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.github.dreamhead.moco.RestSetting; import com.google.common.base.MoreObjects; import java.util.List; import static com.github.dreamhead.moco.parser.model.RestBaseSetting.asRestSetting; import static com.github.dreamhead.moco.parser.model.RestSubResourceSetting.asSubRestSetting; import static com.google.common.collect.Iterables.concat; import static com.google.common.collect.Iterables.toArray; @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY) public class ResourceSetting { private String name; protected List<RestGetSetting> get; protected List<RestPostSetting> post; protected List<RestPutSetting> put; protected List<RestDeleteSetting> delete; protected List<RestHeadSetting> head; protected List<RestPatchSetting> patch; protected List<RestSubResourceSetting> resource; public String getName() { return name; } @Override public String toString() { return MoreObjects.toStringHelper(this) .omitNullValues() .add("name", name) .add("get", get) .add("post", post) .add("put", put) .add("delete", delete) .add("head", head) .add("patch", patch) .add("sub resource", resource) .toString(); } @SuppressWarnings("unchecked") public RestSetting[] getSettings() { return toArray(concat(asRestSetting(get), asRestSetting(post), asRestSetting(put), asRestSetting(delete), asRestSetting(head), asRestSetting(patch), asSubRestSetting(resource)), RestSetting.class); } }