/* * Copyright (C) 2011 Artur Suilin * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package ru.metrika4j.entity; import java.util.Arrays; /** * Cчётчик.<p> * * @see <a href="http://api.yandex.ru/metrika/doc/ref/reference/get-counter.xml">Поля счетчика</a> */ public class Counter implements Entity<Integer> { private int id; private String ownerLogin; private String code; private CodeOptions codeOptions; private Status codeStatus; private String name; private String site; private CounterType type; private Permission permission; private Monitoring monitoring; // Необязательные параметры private String[] mirrors; private Goal[] goals; private Filter[] filters; private Operation[] operations; private Grant[] grants; public Counter() { } public Integer getId() { return id; } public void setId(int id) { this.id = id; } public String getOwnerLogin() { return ownerLogin; } public void setOwnerLogin(String ownerLogin) { this.ownerLogin = ownerLogin; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public CodeOptions getCodeOptions() { return codeOptions; } public void setCodeOptions(CodeOptions codeOptions) { this.codeOptions = codeOptions; } public Status getCodeStatus() { return codeStatus; } public void setCodeStatus(Status codeStatus) { this.codeStatus = codeStatus; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSite() { return site; } public void setSite(String site) { this.site = site; } public CounterType getType() { return type; } public void setType(CounterType type) { this.type = type; } public Permission getPermission() { return permission; } public void setPermission(Permission permission) { this.permission = permission; } public Monitoring getMonitoring() { return monitoring; } public void setMonitoring(Monitoring monitoring) { this.monitoring = monitoring; } public String[] getMirrors() { return mirrors; } public void setMirrors(String[] mirrors) { this.mirrors = mirrors; } public Goal[] getGoals() { return goals; } public void setGoals(Goal[] goals) { this.goals = goals; } public Filter[] getFilters() { return filters; } public void setFilters(Filter[] filters) { this.filters = filters; } public Operation[] getOperations() { return operations; } public void setOperations(Operation[] operations) { this.operations = operations; } public Grant[] getGrants() { return grants; } public void setGrants(Grant[] grants) { this.grants = grants; } @Override public String toString() { return "Counter{" + "id=" + id + ", ownerLogin='" + ownerLogin + '\'' + ", codeOptions=" + codeOptions + ", codeStatus=" + codeStatus + ", name='" + name + '\'' + ", site='" + site + '\'' + ", type=" + type + ", permission=" + permission + ", monitoring=" + monitoring + ", mirrors=" + (mirrors == null ? null : Arrays .asList(mirrors)) + ", goals=" + (goals == null ? null : Arrays.asList( goals)) + ", filters=" + (filters == null ? null : Arrays.asList( filters)) + ", operations=" + (operations == null ? null : Arrays.asList( operations)) + ", grants=" + (grants == null ? null : Arrays.asList(grants)) + '}'; } public static enum Status { CS_ERR_CONNECT, //Не удалось проверить (ошибка соединения). CS_ERR_DUPLICATED, //Установлен более одного раза. CS_ERR_HTML_CODE, //Установлен некорректно. CS_ERR_OTHER_HTML_CODE, //Уже установлен другой счётчик. CS_ERR_TIMEOUT, //Не удалось проверить (превышено время ожидания). CS_ERR_UNKNOWN, //Неизвестная ошибка. CS_NEW_COUNTER, //Недавно создан. CS_NOT_EVERYWHERE, //Установлен не на всех страницах. CS_NOT_FOUND, //Не установлен. CS_NOT_FOUND_HOME, //Не установлен на главной странице. CS_NOT_FOUND_HOME_LOAD_DATA, //Не установлен на главной странице, но данные поступают. CS_OK, //Корректно установлен. CS_OK_NO_DATA, //Установлен, но данные не поступают. CS_WAIT_FOR_CHECKING, //Ожидает проверки наличия. CS_WAIT_FOR_CHECKING_LOAD_DATA, //Ожидает проверки наличия, данные поступают. CS_OBSOLETE } public static class Monitoring { public boolean enableMonitoring; public String[] emails; public boolean smsAllowed; public boolean enableSms; public String smsTime; @Override public String toString() { return "Monitoring{" + "enableMonitoring=" + enableMonitoring + ", emails=" + (emails == null ? null : Arrays .asList(emails)) + ", smsAllowed=" + smsAllowed + ", enableSms=" + enableSms + ", smsTime='" + smsTime + '\'' + '}'; } } public static class CodeOptions { public boolean clickmap; public boolean externalLinks; public boolean async; public Informer informer; public boolean visor; public boolean params; public boolean denial; public boolean trackHash; public boolean ut; } public static class Informer { public boolean enabled; public HtmlType type; public int size; public Indicator indicator; public String colorStart; public String colorEnd; public int colorText; public int colorArrow; public boolean allowed; /** Тип HTML-кода счетчика. */ public static enum HtmlType { /** счетчик без информера (по умолчанию); */ counter, /** счётчик с информером */ together, /** только информер */ informer, ext } public static enum Indicator { /** просмотры (по умолчанию); */ pageviews, /** визиты */ visits, /** посетители */ uniques } } /** Тип счётчика */ public static enum CounterType { /** cчётчик создан пользователем в Метрике */ simple, /** счётчик импортирован из РСЯ */ partner } /** Уровень доступа к счётчику */ public static enum Permission { /** собственный счётчик пользователя */ own, /** гостевой счётчик с уровнем доступа «только просмотр» */ view, /** гостевой счётчик с уровнем доступа «полный доступ» */ edit } }