text:
\documentclass[11pt, a4paper]{book}

\usepackage[brazil]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage[pdftex]{hyperref}
\usepackage[pdftex]{graphicx}

\usepackage{amsmath}
\usepackage{indentfirst}
\usepackage{fancyhdr}
\usepackage{setspace}
\usepackage[pagebackref,colorlinks=true,urlcolor=cyan,citecolor=red,linkcolor=blue]{hyperref}

\usepackage{color}
\usepackage{pifont}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{setspace}
\usepackage[small,compact]{titlesec}

\usepackage[square,sort,nonamebreak]{natbib}
\usepackage[Lenny]{fncychap}
\usepackage{url}
\usepackage{latexsym}
\usepackage{multicol}
\usepackage{multirow}

% Formatação
\topmargin -1.5cm
\oddsidemargin -0.04cm
\evensidemargin -0.04cm
\textwidth 16.59cm
\textheight 21.94cm
%\pagestyle{empty}                     % Sem numero de paginas
\pagestyle{fancy}                         %cabecalhos e rodares
\fancyhead[RO,RE]{\today}
\fancyhead[LO,LE]{MAC0332 - SI para grupos de pesquisa\\
	Casos de Teste Caixa Preta para Análise Funcional}
\fancyfoot[LO,LE]{Confidencial}
\fancyfoot[RO,RE] {\thepage}
\fancyfoot[CO,CE]{Grupo 3, 2011}

\parskip 7.2pt                        % Espaço entre paragrafos 7.2
%\renewcommand{\baselinestretch}{1.5} % Espaçamento entre linhas = 1.5
%\parindent 0pt

% Tirar hifenização
\hyphenpenalty = 5000
\tolerance = 1000
\sloppy

% numeração para subsubsection
%errado: \renewcommand\thesubsubsection{\@arabic\c@section.\@arabic\c@subsection.\@arabic\c@subsubsection.}
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{4}

\begin{document}

% Capa
\thispagestyle{empty}
\begin{center}
    \vspace*{0.2cm}
    \textbf{\Large{Sistema de Informação para Grupos de Pesquisa}}\\

    \vspace*{1.2cm}

    \Large{Desenvolvedor - Jorge J. G. Leandro}\\
    \Large{Grupo 3 - Iteração 2}

    \vskip 2cm
	\textsc{
	MAC0332 - 2011\\[-0.25cm]
          	Engenharia de Software\\[-0.25cm]
	IME - USP\\[-0.25cm]
	}

    \vskip 1.5cm
    Casos de Teste Caixa Preta\\
    Prof: Marco Gerosa\\

    \vskip 0.5cm
 %   \normalsize{São Paulo, Julho de 2008}
   {\normalsize São Paulo, \today}
\end{center}

\chapter[Apresentação]{Apresentação}
\label{cap:apresentacao}

	 	O presente documento descreve o cumprimento da tarefa \emph{Criar casos de teste}, mediante uma coleção de Casos de Teste Caixa Preta para Análise Funcional para o SIGP, conforme o documento de requisitos do sistema e de acordo com diretrizes de [Schach, 2007] e gabaritos do \emph{Processo Unificado Aberto - OpenUP}.

\chapter[Casos de Teste]{Casos de Teste Caixa Preta - Análise Funcional}
\label{cap:casosdeteste}

\section{Testar o cadastro de novos ítens no sistema.}

\begin{itemize}
	\item Caso de Teste - SIGP-CT-001
	\begin{itemize}
	\item Descrição: Cadastrar um \textbf{contribuinte}.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} com formulário para cadastro de contribuinte. Banco de Dados criado.
	\item Pós-condições: O registro de mais um contribuinte no BD e apresentação na listagem subsequente.
	\item Dados necessários: Nome, Usuario, Publicações, Filiacao
	\end{itemize}

	\item  Caso de Teste - SIGP-CT-002
	\begin{itemize}
	\item Descrição: Cadastrar um \textbf{usuário}.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} com formulário para cadastro de usuario. Banco de Dados criado.
	\item Pós-condições: O registro de mais um usuário no BD e na listagem subsequente.
	\item Dados necessários: Login, Senha, Tipo, Avatar, Contribuinte
	\end{itemize}

	\item Caso de Teste - SIGP-CT-003
	\begin{itemize}
	\item Descrição: Cadastrar um \textbf{grupo}.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} com formulário para cadastro de grupo. Ter o Banco de Dados criado.
	\item Pós-condições: O registro de mais um grupo no BD e na listagem subsequente.
	\item Dados necessários: Nome, Subgrupo, Lista de linhas de pesquisa, Lista de filiações, Lista de Disciplinas.
	\end{itemize}

\newpage

	\item Caso de Teste - SIGP-CT-004
	\begin{itemize}
	\item Descrição: Cadastrar um \textbf{subgrupo}.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} com formulário para cadastro de subgrupo de um grupo.Ter o Banco de Dados criado.
	\item Pós-condições: O registro de mais um subgrupo no BD e na listagem subsequente.
	\item Dados necessários: Nome, Nome do grupo, Lista de linhas de pesquisa, Lista de filiações, Lista de disciplinas.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-005
	\begin{itemize}
	\item Descrição: Cadastrar uma \textbf{publicação}.
	\item Pré-condições: Ser membro-usuário. Ter uma \emph{View} com formulário para cadastro de publicação.Ter o Banco de Dados criado.
	\item Pós-condições: O registro de mais uma publicação no BD e na listagem subsequente.
	\item Dados necessários: Titulo, Veiculo, Data, Projeto, Lista de Contribuintes
	\end{itemize}

	\item Caso de Teste - SIGP-CT-006
	\begin{itemize}
	\item Descrição: Cadastrar uma \textbf{linha de pesquisa}.
	\item Pré-condições: Ter uma \emph{View} com formulário para cadastrar linha de pesquisa. Banco de Dados criado.
	\item Pós-condições: O registro de mais uma linha de pesquisa no BD e na listagem subsequente.
	\item Dados necessários: Nome. Lista de projetos na linha de pesquisa. Lista de Grupos.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-007
	\begin{itemize}
	\item Descrição: Cadastrar um \textbf{projeto}.
	\item Pré-condições: Banco de Dados criado.
	\item Pós-condições: O registro de mais um projeto no BD e na listagem subsequente.
	\item Dados necessários: Nome do projeto, Descrição do projeto, Nome da Agência de Fomento financiadora, Linha de pesquisa, Lista de publicações, llista de pessoas filiações.
	\end{itemize}

\newpage
\section{Testar o acréscimo de informações a ítens já cadastrados no sistema}

	\item Caso de Teste - SIGP-CT-008
	\begin{itemize}
	\item Descrição: Relacionar uma \textbf{publicação} aos \textbf{projetos} correlatos.
	\item Pré-condições: Ser usuário. Ter uma \emph{View} com campos para relacionar publicações a projetos.Ter o Banco de Dados criado.
	\item Pós-condições: O registro de mais uma publicação no BD e na listagem subsequente.
	\item Dados necessários: Título, veículo, Data, Lista de projetos, Lista de contribuintes
	\end{itemize}

	\item Caso de Teste - SIGP-CT-009
	\begin{itemize}
	\item Descrição: Fazer \emph{upload} de arquivo \emph{.pdf} de uma \textbf{publicação}.
	\item Pré-condições: Ser usuário. Ter uma \emph{View} com entrada para caminho do arquivo. Banco de Dados criado.
	\item Pós-condições: Exibir um ícone com um \emph{link} apontando para o arquivo recém enviado, ao lado da publicação em questão, na lista de publicações.
	\item Dados necessários: Nome e/ou ID da publicação. Arquivo \emph{.pdf} da publicação.
	\end{itemize}

\newpage
\section{Testar a exibição de informações de ítens no sistema}

	\item Caso de Teste - SIGP-CT-010
	\begin{itemize}
	\item Descrição: Listar disciplinas oferecidas por um \textbf{grupo}.
	\item Pré-condições: Ser usuário. Ter uma \emph{View} para exibir uma listagem de disciplinas ministradas por um grupo.
	\item Pós-condições: Exibir a listagem das disciplinas na \emph{View}.
	\item Dados necessários: Nome  e/ou ID do grupo.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-011
	\begin{itemize}
	\item Descrição: Listar projetos sob uma \textbf{linha de pesquisa} conduzidos por um \textbf{grupo}.
	\item Pré-condições: Ser usuário. Ter uma \emph{View} para exibir uma listagem de projetos coordenados por um grupo.
	\item Pós-condições: Exibir a listagem dos projetos na \emph{View}.
	\item Dados necessários: Nome  e/ou ID do grupo.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-012
	\begin{itemize}
	\item Descrição: Listar \textbf{publicações} de um grupo, separadas por tipo.
	\item Pré-condições: Ser usuário. Ter uma \emph{View} para exibir uma listagem de publicações de um grupo.
	\item Pós-condições: Exibir a listagem de publicações separadas por tipo na \emph{View}.
	\item Dados necessários: Nome e/ou ID do grupo.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-013
	\begin{itemize}
	\item Descrição: Listar filiações de um \textbf{grupo}.
	\item Pré-condições: Ser usuário. Ter uma \emph{View} para exibir uma listagem de filliações de um grupo.
	\item Pós-condições: Exibir a listagem de filiações de um grupo na \emph{View}.
	\item Dados necessários: Nome  e/ou ID do grupo.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-014
	\begin{itemize}
	\item Descrição: Listar \textbf{linhas de pesquisa} de um grupo, organizadas hierarquicamente.
	\item Pré-condições: Ser membro-usuário. Ter uma \emph{View} para exibir uma listagem das linhas de pesquisas de um grupo. Banco de Dados criado.
	\item Pós-condições: Exibir uma listagem das linhas de pesquisas de um grupo, ordenadas hierarquicamente.
	\item Dados necessários: Nome e/ou ID do grupo.
	\end{itemize}

\newpage
\section{Testar a exibição de informações de um item cadastrado no sistema}

	\item Caso de Teste - SIGP-CT-015
	\begin{itemize}
	\item Descrição: Exibir principais informações de uma \textbf{linha de pesquisa}.
	\item Pré-condições: Ser usuário. Ter uma \emph{View} com um \emph{link} para outra \emph{View} em que seja exibida a \textbf{descrição de uma linha de pesquisa}, e listagens das \textbf{publicações}, \textbf{filiacoes} e \textbf{projetos} associados à linha de pesquisa em questão.
	\item Pós-condições: Exibir na \emph{View}, a \textbf{descrição da linha de pesquisa}, uma lista de \textbf{filiacoes do grupo}, lista de \textbf{publicações da linha de pesquisa} e lista de \textbf{projetos} associados à linha de pesquisa.
	\item Dados necessários: Nome e/ou ID da linha de pesquisa.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-016
	\begin{itemize}
	\item Descrição: Exibir principais informações de um \textbf{projeto}.
	\item Pré-condições: Ser usuário. Ter uma \emph{View} para exibir principais informações de um projeto.
	\item Pós-condições: Exibir a \textbf{descrição do projeto}, uma lista de \textbf{filiações do projeto} e uma lista de \textbf{publicações do projeto} na \emph{View}.
	\item Dados necessários: Nome e/ou ID do projeto.
	\end{itemize}

\newpage
\section{Testar a capacidade de reorganização da exibição de dados de um item em uma \emph{View}}

	\item Caso de Teste - SIGP-CT-017
	\begin{itemize}
	\item Descrição: Ordenar \textbf{publicações} por tipo, ano ou veículo.
	\item Pré-condições: Ser usuário. Ter uma \emph{View} para listar publicações de um grupo.
	\item Pós-condições: Uma \emph{View} com três controles (botões/links) para ordenar uma llista de \textbf{publicações de um grupo} por tipo, ano ou veículo.
	\item Dados necessários: Nome e/ou ID de um grupo, projeto ou linha de pesquisa.
	\end{itemize}

\newpage
\section{Testar a tentativa de cadastrar ítens já cadastrados no sistema.}

	\item Caso de Teste - SIGP-CT-018
	\begin{itemize}
	\item Descrição: Tentar cadastrar um \textbf{usuário} já cadastrado no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} com formulário para cadastro de usuário. Banco de Dados criado.
	\item Pós-condições: Exibir uma \emph{View} com uma mensagem de erro, informando que este registro já existe no BD.
	\item Dados necessários: Login, Senha, Tipo, Avatar
	\end{itemize}

\item  Caso de Teste - SIGP-CT-019
	\begin{itemize}
	\item Descrição: Tentar cadastrar um \textbf{contribuinte} já cadastrado no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} com formulário para cadastro de contribuinte com entradas para especificar contribuinte que é usuário. Banco de Dados criado.
	\item Pós-condições: Exibir uma \emph{View} com uma mensagem de erro, informando que este registro já existe no BD.
	\item Dados necessários: Nome, Publicações, Filiação, Login, Senha, Avatar, Tipo
	\end{itemize}

	\item Caso de Teste - SIGP-CT-020
	\begin{itemize}
	\item Descrição: Tentar cadastrar um \textbf{grupo} já cadastrado no sistema.
	\item Pré-condições: Ser adminstrador. Ter uma \emph{View} com formulário para cadastro de grupo. Ter o Banco de Dados criado.
	\item Pós-condições: Exibir uma \emph{View} com uma mensagem de erro, informando que este registro já existe no BD.
	\item Dados necessários: Nome, Subgrupo, Lista de filiações, Lista de disciplinas, Lista de linhas de pesquisa.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-021
	\begin{itemize}
	\item Descrição: Tentar cadastrar um \textbf{subgrupo} já cadastrado no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} com formulário para cadastro de subgrupo de um grupo.Ter o Banco de Dados criado.
	\item Pós-condições: Exibir uma \emph{View} com uma mensagem de erro, informando que este registro já existe no BD.
	\item Dados necessários: Nome, Grupo, Lista de filiações, Lista de disciplinas, Lista de linhas de pesquisa.
	\end{itemize}

\newpage

	\item Caso de Teste - SIGP-CT-022
	\begin{itemize}
	\item Descrição: Tentar cadastrar uma \textbf{publicação} já cadastrada no sistema.
	\item Pré-condições: Ser usuário. Ter uma \emph{View} com formulário para cadastro de publicação.Ter o Banco de Dados criado.
	\item Pós-condições: Exibir uma \emph{View} com uma mensagem de erro, informando que este registro já existe no BD.
	\item Dados necessários: Titulo, Veiculo, Data, Lista de contribuintes, lista de projetos
	\end{itemize}

	\item Caso de Teste - SIGP-CT-023
	\begin{itemize}
	\item Descrição: Tentar cadastrar uma \textbf{linha de pesquisa} já cadastrada no sistema.
	\item Pré-condições: Ser usuário. Ter uma \emph{View} com formulário para cadastrar linha de pesquisa. Banco de Dados criado.
		\item Pós-condições: Exibir uma \emph{View} com uma mensagem de erro, informando que este registro já existe no BD.
	\item Dados necessários: Nome. Lista de projetos na linha de pesquisa. Lissta de grupos.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-024
	\begin{itemize}
	\item Descrição: Tentar cadastrar um \textbf{projeto} já cadastrado no sistema.
	\item Pré-condições: Banco de Dados criado.
	\item Pós-condições: Exibir uma \emph{View} com uma mensagem de erro, informando que este registro já existe no BD.
	\item Dados necessários: Nome do projeto, Descrição do projeto, Nome da Agência de Fomento financiadora, Linha de Pesquisa, Lista de filiações, Lista de publicações.
	\end{itemize}

\newpage
\section{Testar a tentativa de consultar um item não-cadastrado no sistema.}

	\item Caso de Teste - SIGP-CT-025
	\begin{itemize}
	\item Descrição: Tentar consultar um item não-cadastrado no sistema.
	\item Pré-condições: Banco de Dados criado.
	\item Pós-condições: Exibir uma \emph{View} com uma mensagem de erro, informando que este registro não existe no BD.
	\item Dados necessários: Nome do item.
	\end{itemize}

\newpage
\section{Testar a eliminação de um item cadastrado no sistema uma vez.}
\label{sec:elimumavez}

	\item Caso de Teste - SIGP-CT-026
	\begin{itemize}
	\item Descrição: Eliminar uma vez um contribuinte cadastrado no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de um contribuinte, com um controle (botão) para eliminar este registro. Banco de Dados criado.
	\item Pós-condições: Um registro de contribuinte a menos no BD e apresentação na listagem subsequente.
	\item Dados necessários: Nome ou ID do contribuinte.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-027
	\begin{itemize}
	\item Descrição: Eliminar uma vez um usuário cadastrado no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de um usuário, com um controle (botão) para eliminar este registro. Banco de Dados criado.
	\item Pós-condições: Um registro de usuário a menos no BD e apresentação na listagem subsequente.
	\item Dados necessários: Nome ou ID do usuário.
	\end{itemize}

          \item Caso de Teste - SIGP-CT-028
	\begin{itemize}
	\item Descrição: Eliminar uma vez um grupo cadastrado no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de um grupo, com um controle (botão) para eliminar este registro. Banco de Dados criado.
	\item Pós-condições: Um registro de grupo a menos no BD e apresentação na listagem subsequente.
	\item Dados necessários: Nome ou ID do grupo.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-029
	\begin{itemize}
	\item Descrição: Eliminar uma vez um subgrupo cadastrado no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de um subgrupo, com um controle (botão) para eliminar este registro. Banco de Dados criado.
	\item Pós-condições: Um registro de subgrupo a menos no BD e apresentação na listagem subsequente.
	\item Dados necessários: Nome ou ID do subgrupo.
	\end{itemize}

\newpage

	\item Caso de Teste - SIGP-CT-030
	\begin{itemize}
	\item Descrição: Eliminar uma vez uma publicação cadastrada no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de uma publicação, com um controle (botão) para eliminar este registro. Banco de Dados criado.
	\item Pós-condições: Um registro de publicação a menos no BD e apresentação na listagem subsequente.
	\item Dados necessários: Título e ou ID da publicação.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-031
	\begin{itemize}
	\item Descrição: Eliminar uma vez uma linha de pesquisa cadastrada no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de uma linha de pesquisa, com um controle (botão) para eliminar este registro. Banco de Dados criado.
	\item Pós-condições: Um registro de linha de pesquisa a menos no BD e apresentação na listagem subsequente.
	\item Dados necessários: Nome e ou ID da linha de pesquisa.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-032
	\begin{itemize}
	\item Descrição: Eliminar uma vez um projeto cadastrado no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de um projeto, com um controle (botão) para eliminar este registro. Banco de Dados criado.
	\item Pós-condições: Um registro de projeto a menos no BD e apresentação na listagem subsequente.
	\item Dados necessários: Título e ou ID da publicação.
	\end{itemize}

\newpage
\section{Testar a eliminação de um item cadastrado no sistema duas vezes.}

Repetir os passos da seção~\ref{sec:elimumavez} para cada item. Exemplo:

	\item Caso de Teste - SIGP-CT-033
	\begin{itemize}
	\item Descrição: Tentar eliminar duas vezes uma pessoa cadastrada no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de um contribuinte, com um controle (botão) para eliminar este registro. Banco de Dados criado.
	\item Pós-condições: Exibir uma \emph{View} com uma mensagem de erro, informando que este registro não pode ser elimiado, pois não existe no BD.
	\item Dados necessários: Nome ou ID do contribuinte
	\end{itemize}

\newpage
\section{Testar a atualização de cada campo de um item cadastrado no sistema.}

	\item Caso de Teste - SIGP-CT-034
	\begin{itemize}
	\item Descrição: Tentar atualizar duas vezes cada campo de um \textbf{contribuinte} cadastrado no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de um contribuinte, com campos editáveis e um botão de salvar alterações. Banco de Dados criado.
	\item Pós-condições: Verificar que a segunda versão está armazenada por meio da \emph{View} atualizada. BD atualizado.
	\item Dados necessários: Nome, Lista de publicações, Filiação, Usuário
	\end{itemize}

\newpage
\section{Testar a modificação de um item cadastrado no sistema.}
	\item Caso de Teste - SIGP-CT-035
	\begin{itemize}
	\item Descrição: Tentar modificar o registro de um \textbf{usuário} cadastrado no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de um usuário, com campos editáveis e um botão de salvar alterações. Banco de Dados criado.
	\item Pós-condições: Verificar que a alteração está armazenada por meio da \emph{View} atualizada. BD atualizado.
	\item Dados necessários: Login, Senha, Tipo, Avatar
	\end{itemize}

	\item  Caso de Teste - SIGP-CT-036
	\begin{itemize}
	\item Descrição: Tentar modificar o registro de uma \textbf{filiação} cadastrada no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de uma filiação, com campos editáveis e um botão de salvar alterações. Banco de Dados criado.
	\item Pós-condições:  Verificar que a alteração está armazenada por meio da \emph{View} atualizada. BD atualizado.
	\item Dados necessários: Contribuinte, Lista de Grupos, Lista de Projetos
	\end{itemize}

	\item Caso de Teste - SIGP-CT-037
	\begin{itemize}
	\item Descrição: Tentar modificar o registro de um  \textbf{grupo} cadastrado no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de um grupo, com campos editáveis e um botão de salvar alterações. Banco de Dados criado.
\item Pós-condições:  Verificar que a alteração está armazenada por meio da \emph{View} atualizada. BD atualizado.
	\item Dados necessários: Nome, Subgrupo, Lista de linhas de pesquisa, Lista de filiações.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-038
	\begin{itemize}
	\item Descrição: Tentar modificar o registro de um  \textbf{subgrupo} cadastrado no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de um subgrupo, com campos editáveis e um botão de salvar alterações. Banco de Dados criado.
	\item Pós-condições:  Verificar que a alteração está armazenada por meio da \emph{View} atualizada. BD atualizado.
	\item Dados necessários:  Nome, Grupo, Lista de linhas de pesquisa, Lista de filiações.
	\end{itemize}

\newpage

	\item Caso de Teste - SIGP-CT-039
	\begin{itemize}
	\item Descrição: Tentar modificar o registro de uma \textbf{publicação} cadastrada no sistema.
\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de uma publicação, com campos editáveis e um botão de salvar alterações. Banco de Dados criado.
	\item Pós-condições:  Verificar que a alteração está armazenada por meio da \emph{View} atualizada. BD atualizado.
	\item Dados necessários: Título, veículo, data, Lista de contribuintes, Lista de projetos.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-040
	\begin{itemize}
	\item Descrição: Tentar modificar o registro de uma \textbf{linha de pesquisa} cadastrada no sistema.
	\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de uma linha de pesquisa, com campos editáveis e um botão de salvar alterações. Banco de Dados criado.
	\item Pós-condições:  Verificar que a alteração está armazenada por meio da \emph{View} atualizada. BD atualizado.
	\item Dados necessários: Nome. Lista de Grupos. Lista de projetos na linha de pesquisa.
	\end{itemize}

	\item Caso de Teste - SIGP-CT-041
	\begin{itemize}
	\item Descrição:  Tentar modificar o registro de uma \textbf{projeto} cadastrada no sistema.
\item Pré-condições: Ser administrador. Ter uma \emph{View} para exibição do registro de um projeto, com campos editáveis e um botão de salvar alterações. Banco de Dados criado.
	\item Pós-condições: O registro de mais um projeto no BD e na listagem subsequente.
	\item Dados necessários: Nome do projeto, Descrição do projeto, Nome da Agência de Fomento financiadora, lista de filiações, lista de publicações.
	\end{itemize}

\newpage
\section{Testar a impressão de uma \emph{View}}
	\item Caso de Teste - SIGP-CT-042
	\begin{itemize}
	\item Descrição: Imprimir uma \emph{View} do sistema.
	\item Pré-condições: Ser membro-usuário. Ter uma \emph{View} do sistema exibida na tela do computador com um ícone ou botão para impressão de uma versão amigável.
	\item Pós-condições: Impressão de uma versão amigável.
	\item Dados necessários: Nenhum dado.
	\end{itemize}

\end{itemize}

\end{document}


text:
Opportunities

Volunteers

Nonprofits

                {{auth.getCurrentDisplayName()}}arrow_drop_down

My Account

My Profile

My Projects

My Organization

 Create Organization

Create Project

Log In

Log Out

<router-outlet></router-outlet>

About Us

redpajama_set_name: RedPajamaGithub


text:
.class public abstract Landroid/service/persistentdata/IPersistentDataBlockService$Stub;
.super Landroid/os/Binder;
.source "IPersistentDataBlockService.java"

# interfaces
.implements Landroid/service/persistentdata/IPersistentDataBlockService;

# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Landroid/service/persistentdata/IPersistentDataBlockService;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x409
    name = "Stub"
.end annotation

.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;
    }
.end annotation

# static fields
.field private static final DESCRIPTOR:Ljava/lang/String; = "android.service.persistentdata.IPersistentDataBlockService"

.field static final TRANSACTION_getDataBlockSize:I = 0x4

.field static final TRANSACTION_getMaximumDataBlockSize:I = 0x5

.field static final TRANSACTION_getOemUnlockEnabled:I = 0x7

.field static final TRANSACTION_read:I = 0x2

.field static final TRANSACTION_setOemUnlockEnabled:I = 0x6

.field static final TRANSACTION_wipe:I = 0x3

.field static final TRANSACTION_write:I = 0x1

# direct methods
.method public constructor <init>()V
    .registers 2

    .prologue
    .line 21
    invoke-direct {p0}, Landroid/os/Binder;-><init>()V

    .line 23
    const-string/jumbo v0, "android.service.persistentdata.IPersistentDataBlockService"

    invoke-virtual {p0, p0, v0}, Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V

    .line 21
    return-void
.end method

.method public static asInterface(Landroid/os/IBinder;)Landroid/service/persistentdata/IPersistentDataBlockService;
    .registers 3
    .param p0, "obj"    # Landroid/os/IBinder;

    .prologue
    const/4 v1, 0x0

    .line 31
    if-nez p0, :cond_4

    .line 32
    return-object v1

    .line 34
    :cond_4
    const-string/jumbo v1, "android.service.persistentdata.IPersistentDataBlockService"

    invoke-interface {p0, v1}, Landroid/os/IBinder;->queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;

    move-result-object v0

    .line 35
    .local v0, "iin":Landroid/os/IInterface;
    if-eqz v0, :cond_14

    instance-of v1, v0, Landroid/service/persistentdata/IPersistentDataBlockService;

    if-eqz v1, :cond_14

    .line 36
    check-cast v0, Landroid/service/persistentdata/IPersistentDataBlockService;

    .end local v0    # "iin":Landroid/os/IInterface;
    return-object v0

    .line 38
    .restart local v0    # "iin":Landroid/os/IInterface;
    :cond_14
    new-instance v1, Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;

    invoke-direct {v1, p0}, Landroid/service/persistentdata/IPersistentDataBlockService$Stub$Proxy;-><init>(Landroid/os/IBinder;)V

    return-object v1
.end method

# virtual methods
.method public asBinder()Landroid/os/IBinder;
    .registers 1

    .prologue
    .line 42
    return-object p0
.end method

.method public onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z
    .registers 15
    .param p1, "code"    # I
    .param p2, "data"    # Landroid/os/Parcel;
    .param p3, "reply"    # Landroid/os/Parcel;
    .param p4, "flags"    # I
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/os/RemoteException;
        }
    .end annotation

    .prologue
    const/4 v7, 0x0

    const/4 v8, 0x1

    .line 46
    sparse-switch p1, :sswitch_data_90

    .line 112
    invoke-super {p0, p1, p2, p3, p4}, Landroid/os/Binder;->onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z

    move-result v7

    return v7

    .line 50
    :sswitch_a
    const-string/jumbo v7, "android.service.persistentdata.IPersistentDataBlockService"

    invoke-virtual {p3, v7}, Landroid/os/Parcel;->writeString(Ljava/lang/String;)V

    .line 51
    return v8

    .line 55
    :sswitch_11
    const-string/jumbo v7, "android.service.persistentdata.IPersistentDataBlockService"

    invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 57
    invoke-virtual {p2}, Landroid/os/Parcel;->createByteArray()[B

    move-result-object v1

    .line 58
    .local v1, "_arg0":[B
    invoke-virtual {p0, v1}, Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->write([B)I

    move-result v2

    .line 59
    .local v2, "_result":I
    invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V

    .line 60
    invoke-virtual {p3, v2}, Landroid/os/Parcel;->writeInt(I)V

    .line 61
    return v8

    .line 65
    .end local v1    # "_arg0":[B
    .end local v2    # "_result":I
    :sswitch_26
    const-string/jumbo v7, "android.service.persistentdata.IPersistentDataBlockService"

    invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 66
    invoke-virtual {p0}, Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->read()[B

    move-result-object v6

    .line 67
    .local v6, "_result":[B
    invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V

    .line 68
    invoke-virtual {p3, v6}, Landroid/os/Parcel;->writeByteArray([B)V

    .line 69
    return v8

    .line 73
    .end local v6    # "_result":[B
    :sswitch_37
    const-string/jumbo v7, "android.service.persistentdata.IPersistentDataBlockService"

    invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 74
    invoke-virtual {p0}, Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->wipe()V

    .line 75
    invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V

    .line 76
    return v8

    .line 80
    :sswitch_44
    const-string/jumbo v7, "android.service.persistentdata.IPersistentDataBlockService"

    invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 81
    invoke-virtual {p0}, Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->getDataBlockSize()I

    move-result v2

    .line 82
    .restart local v2    # "_result":I
    invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V

    .line 83
    invoke-virtual {p3, v2}, Landroid/os/Parcel;->writeInt(I)V

    .line 84
    return v8

    .line 88
    .end local v2    # "_result":I
    :sswitch_55
    const-string/jumbo v7, "android.service.persistentdata.IPersistentDataBlockService"

    invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 89
    invoke-virtual {p0}, Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->getMaximumDataBlockSize()J

    move-result-wide v4

    .line 90
    .local v4, "_result":J
    invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V

    .line 91
    invoke-virtual {p3, v4, v5}, Landroid/os/Parcel;->writeLong(J)V

    .line 92
    return v8

    .line 96
    .end local v4    # "_result":J
    :sswitch_66
    const-string/jumbo v7, "android.service.persistentdata.IPersistentDataBlockService"

    invoke-virtual {p2, v7}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 98
    invoke-virtual {p2}, Landroid/os/Parcel;->readInt()I

    move-result v7

    if-eqz v7, :cond_7a

    const/4 v0, 0x1

    .line 99
    .local v0, "_arg0":Z
    :goto_73
    invoke-virtual {p0, v0}, Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->setOemUnlockEnabled(Z)V

    .line 100
    invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V

    .line 101
    return v8

    .line 98
    .end local v0    # "_arg0":Z
    :cond_7a
    const/4 v0, 0x0

    .restart local v0    # "_arg0":Z
    goto :goto_73

    .line 105
    .end local v0    # "_arg0":Z
    :sswitch_7c
    const-string/jumbo v9, "android.service.persistentdata.IPersistentDataBlockService"

    invoke-virtual {p2, v9}, Landroid/os/Parcel;->enforceInterface(Ljava/lang/String;)V

    .line 106
    invoke-virtual {p0}, Landroid/service/persistentdata/IPersistentDataBlockService$Stub;->getOemUnlockEnabled()Z

    move-result v3

    .line 107
    .local v3, "_result":Z
    invoke-virtual {p3}, Landroid/os/Parcel;->writeNoException()V

    .line 108
    if-eqz v3, :cond_8c

    move v7, v8

    :cond_8c
    invoke-virtual {p3, v7}, Landroid/os/Parcel;->writeInt(I)V

    .line 109
    return v8

    .line 46
    :sswitch_data_90
    .sparse-switch
        0x1 -> :sswitch_11
        0x2 -> :sswitch_26
        0x3 -> :sswitch_37
        0x4 -> :sswitch_44
        0x5 -> :sswitch_55
        0x6 -> :sswitch_66
        0x7 -> :sswitch_7c
        0x5f4e5446 -> :sswitch_a
    .end sparse-switch
.end method


text:
<!DOCTYPE html>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Escape</title>
    <meta name="viewport" content="width=device-width">
    <meta name="description" content="Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description.">
    <link rel="canonical" href="http://localhost:4000/web%20development/2014/07/17/project-2/">

    <meta name="google-site-verification" content="jQYrF6kLUDd4hYHoDNInHLO9xIx029ubrg1aJ6wZJXo" />

    <link rel="stylesheet" href="/style.css">

    <link rel="stylesheet" href="/css/font-awesome/css/font-awesome.min.css" }}">
    <link rel="stylesheet" href="/css/custom.css">
    <link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css">
    <link href='https://fonts.googleapis.com/css?family=Kaushan+Script' rel='stylesheet' type='text/css'>
    <link href="https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic" rel="stylesheet" type="text/css">
    <link href='https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
    <link href='https://fonts.googleapis.com/css?family=Roboto+Slab:400,100,300,700' rel='stylesheet' type='text/css'>

    <link rel="apple-touch-icon-precomposed" sizes="57x57" href="/img/favicons/apple-touch-icon-57x57.png" />
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/img/favicons/apple-touch-icon-114x114.png" />
    <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/img/favicons/apple-touch-icon-72x72.png" />
    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/img/favicons/apple-touch-icon-144x144.png" />
    <link rel="apple-touch-icon-precomposed" sizes="60x60" href="/img/favicons/apple-touch-icon-60x60.png" />
    <link rel="apple-touch-icon-precomposed" sizes="120x120" href="/img/favicons/apple-touch-icon-120x120.png" />
    <link rel="apple-touch-icon-precomposed" sizes="76x76" href="/img/favicons/apple-touch-icon-76x76.png" />
    <link rel="apple-touch-icon-precomposed" sizes="152x152" href="/img/favicons/apple-touch-icon-152x152.png" />
    <link rel="icon" type="image/png" href="/img/favicons/favicon-196x196.png" sizes="196x196" />
    <link rel="icon" type="image/png" href="/img/favicons/favicon-96x96.png" sizes="96x96" />
    <link rel="icon" type="image/png" href="/img/favicons/favicon-32x32.png" sizes="32x32" />
    <link rel="icon" type="image/png" href="/img/favicons/favicon-16x16.png" sizes="16x16" />
    <link rel="icon" type="image/png" href="/img/favicons/favicon-128.png" sizes="128x128" />
    <meta name="application-name" content=" "/>
    <meta name="msapplication-TileColor" content="#FFFFFF" />
    <meta name="msapplication-TileImage" content="/img/favicons/mstile-144x144.png" />
    <meta name="msapplication-square70x70logo" content="/img/favicons/mstile-70x70.png" />
    <meta name="msapplication-square150x150logo" content="/img/favicons/mstile-150x150.png" />
    <meta name="msapplication-wide310x150logo" content="/img/favicons/mstile-310x150.png" />
    <meta name="msapplication-square310x310logo" content="/img/favicons/mstile-310x310.png" />

<title>Escape | Future Booth</title>
<meta property="og:title" content="Escape" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Lorem ipsum dolor sit amet, usu cu alterum nominavi lobortis. At duo novum diceret. Tantas apeirian vix et, usu sanctus postulant inciderint ut, populo diceret necessitatibus in vim. Cu eum dicam feugiat noluisse." />
<meta property="og:description" content="Lorem ipsum dolor sit amet, usu cu alterum nominavi lobortis. At duo novum diceret. Tantas apeirian vix et, usu sanctus postulant inciderint ut, populo diceret necessitatibus in vim. Cu eum dicam feugiat noluisse." />
<link rel="canonical" href="http://localhost:4000/web%20development/2014/07/17/project-2/" />
<meta property="og:url" content="http://localhost:4000/web%20development/2014/07/17/project-2/" />
<meta property="og:site_name" content="Future Booth" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2014-07-17T00:00:00-04:00" />

                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                    Toggle navigation

                </button>

                        ABOUT

                        SEE IT

                        HOW

                        EXAMPLES

                        CONTACT

The future of photo booths is here.

Make your next event amazing with a Future Booth. Full social sharing capabilities, lead capturing for businesses, brandable photos and more!

How are we special?

Our photo booths are affordable, lightweight, simple and beautiful. We offer a presonalized and super slick experience. We make sharing on social media super easy and fun. Contact us to learn more.

Light Up The Night

2000 lumens of light draws your guests in and makes them look amazing

Totally Customaziable

Include your logo, name, picture overlay... whatever you can dream up

Super Social

Share through Instagram or Facebook right from the booth!

Lead Capturing

Capture leads with every picture. The leads you get could pay for the rental...

Analyitics

Access all the analyitics from your event in easy to read and beautiful charts

Super fun!

As futuristic as our booths are, it’s still just good old fashioned fun!

Light Up The Night

2000 lumens of light draws your guests in and makes them look amazing

Totally Customaziable

Include your logo, name, picture overlay... whatever you can dream up

Super Social

Share through Instagram or Facebook right from the booth!

Lead Capturing

Capture leads with every booth picture. The leads you get could pay for the rental...

Analyitics

Access all the analyitics information from your event in easy to read and beautiful charts

Super fun!

Who doesn't love a photo booth? As futuristic as our booths are, it's still just good old fashioned fun!

                Previous

                Next

SEE IT IN ACTION

If a picture is worth a thousand words, a video must be worth a million.

HOW IT WORKS

We told you it was easy, here's proof.

STEP 1

We ship you a unit.

STEP 2

You unpack the unit.

STEP 3

You put together the unit (instructions included).

STEP 4

You enjoy your party and reap the benefits!

            Previous

            Next

MAKE YOUR NEXT EVENT AWESOME.

More questions? Feel free to send us a message or give us a call.

            CONTACT US

                    Copyright © Future Booth 2017

Privacy Policy

Terms of Use

Contact Us

You can also call us at 1-800-cool-dude.

                        <form id="contactForm">

                                    <input type="text" class="form-control" placeholder="Your Name *" id="name" required data-validation-required-message="Please enter your name.">

                                    <input type="email" class="form-control" placeholder="Your Email *" id="email" required  name="_replyto" data-validation-required-message="Please enter your email address.">

                                    <input type="tel" class="form-control" placeholder="Your Phone *" id="phone" required data-validation-required-message="Please enter your phone number.">

                                    <textarea class="form-control" placeholder="Your Message *" id="comments" required data-validation-required-message="Please enter a message."></textarea>

                        <input type="submit" class="rent-btn" value="SEND MESSAGE">
                        </form>

                            Thank you for getting in touch. We will get back to you as soon as possible.


text:
// Copyright 2021 Google LLC
//
// 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
//
//     https://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 com.google.ads.googleads.examples.advancedoperations;

import static com.google.ads.googleads.examples.utils.CodeSampleHelper.getPrintableDateTime;

import com.beust.jcommander.Parameter;
import com.google.ads.googleads.examples.utils.ArgumentNames;
import com.google.ads.googleads.examples.utils.CodeSampleParams;
import com.google.ads.googleads.lib.GoogleAdsClient;
import com.google.ads.googleads.v12.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType;
import com.google.ads.googleads.v12.enums.SeasonalityEventScopeEnum.SeasonalityEventScope;
import com.google.ads.googleads.v12.errors.GoogleAdsError;
import com.google.ads.googleads.v12.errors.GoogleAdsException;
import com.google.ads.googleads.v12.resources.BiddingDataExclusion;
import com.google.ads.googleads.v12.services.BiddingDataExclusionOperation;
import com.google.ads.googleads.v12.services.BiddingDataExclusionServiceClient;
import com.google.ads.googleads.v12.services.MutateBiddingDataExclusionsResponse;
import com.google.common.collect.ImmutableList;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * Adds a data exclusion for all search campaigns that excludes conversions from being used by Smart
 * Bidding for the time interval specified.
 *
 * <p>For more information on using data exclusions, see
 * https://developers.google.com/google-ads/api/docs/campaigns/bidding/data-exclusions.
 */
public class AddBiddingDataExclusion {

  private static class AddBiddingDataExclusionParams extends CodeSampleParams {

    @Parameter(
        names = ArgumentNames.CUSTOMER_ID,
        required = true,
        description =
            "The client customer ID of the Google Ads account that the data exclusion will"
                + " be added to.")
    private Long customerId;

    @Parameter(
        names = ArgumentNames.START_DATE_TIME,
        required = true,
        description =
            "The start date time in yyyy-MM-dd HH:mm:ss format of the data exclusion period.")
    private String startDateTime;

    @Parameter(
        names = ArgumentNames.END_DATE_TIME,
        required = true,
        description =
            "The end date time in yyyy-MM-dd HH:mm:ss format of the data exclusion period.")
    private String endDateTime;
  }

  public static void main(String[] args) throws IOException {
    AddBiddingDataExclusionParams params = new AddBiddingDataExclusionParams();
    if (!params.parseArguments(args)) {
      // Either pass the required parameters for this example on the command line, or insert them
      // into the code here. See the parameter class definition above for descriptions.
      params.customerId = Long.parseLong("INSERT_CUSTOMER_ID_HERE");
      params.startDateTime = "INSERT_START_DATE_TIME_HERE";
      params.endDateTime = "INSERT_END_DATE_TIME_HERE";
    }

    GoogleAdsClient googleAdsClient = null;
    try {
      googleAdsClient = GoogleAdsClient.newBuilder().fromPropertiesFile().build();
    } catch (FileNotFoundException fnfe) {
      System.err.printf(
          "Failed to load GoogleAdsClient configuration from file. Exception: %s%n", fnfe);
      System.exit(1);
    } catch (IOException ioe) {
      System.err.printf("Failed to create GoogleAdsClient. Exception: %s%n", ioe);
      System.exit(1);
    }

    try {
      new AddBiddingDataExclusion()
          .runExample(googleAdsClient, params.customerId, params.startDateTime, params.endDateTime);
    } catch (GoogleAdsException gae) {
      // GoogleAdsException is the base class for most exceptions thrown by an API request.
      // Instances of this exception have a message and a GoogleAdsFailure that contains a
      // collection of GoogleAdsErrors that indicate the underlying causes of the
      // GoogleAdsException.
      System.err.printf(
          "Request ID %s failed due to GoogleAdsException. Underlying errors:%n",
          gae.getRequestId());
      int i = 0;
      for (GoogleAdsError googleAdsError : gae.getGoogleAdsFailure().getErrorsList()) {
        System.err.printf("  Error %d: %s%n", i++, googleAdsError);
      }
      System.exit(1);
    }
  }

  /**
   * Adds a "CHANNEL" scoped data exclusion for the client customer ID and dates specified.
   *
   * @param googleAdsClient the GoogleAdsClient
   * @param customerId the client ID of the Google Ads account
   * @param startDateTime the start time of the data exclusion (in yyyy-MM-dd HH:mm:ss format) in
   *     the account's timezone
   * @param endDateTime the end time of the data exclusion (in yyyy-MM-dd HH:mm:ss format) in the
   *     account's timezone
   */
  private void runExample(
      GoogleAdsClient googleAdsClient, Long customerId, String startDateTime, String endDateTime) {

    try (BiddingDataExclusionServiceClient DataExclusionServiceClient =
        googleAdsClient.getLatestVersion().createBiddingDataExclusionServiceClient()) {

      // [START add_bidding_data_exclusion]
      BiddingDataExclusion DataExclusion =
          BiddingDataExclusion.newBuilder()
              // A unique name is required for every data exclusion.
              .setName("Data exclusion #" + getPrintableDateTime())
              // The CHANNEL scope applies the data exclusion to all campaigns of specific
              // advertising channel types. In this example, the exclusion will only apply to
              // Search campaigns. Use the CAMPAIGN scope to instead limit the scope to specific
              // campaigns.
              .setScope(SeasonalityEventScope.CHANNEL)
              .addAdvertisingChannelTypes(AdvertisingChannelType.SEARCH)
              // If setting scope CAMPAIGN, add individual campaign resource name(s) according to
              // the commented out line below.
              // .addCampaigns("INSERT_CAMPAIGN_RESOURCE_NAME_HERE")
              .setStartDateTime(startDateTime)
              .setEndDateTime(endDateTime)
              .build();

      BiddingDataExclusionOperation operation =
          BiddingDataExclusionOperation.newBuilder().setCreate(DataExclusion).build();

      MutateBiddingDataExclusionsResponse response =
          DataExclusionServiceClient.mutateBiddingDataExclusions(
              customerId.toString(), ImmutableList.of(operation));
      System.out.printf(
          "Added data exclusion with resource name: %s%n",
          response.getResults(0).getResourceName());
      // [END add_bidding_data_exclusion]
    }
  }
}


text:
from .arithmetic import *  # noqa
from .initializers import *  # noqa


text:
<?php

$languageStrings = array(
	 'Email Templates' => 'Template-uri de e-mail' ,
	'LBL_ADD_RECORD' => 'Adăugați șablon de e-mail',
	'SINGLE_EmailTemplates' => 'Format e-mail',
	'LBL_EMAIL_TEMPLATES'=> 'Template-uri de e-mail',
	'LBL_EMAIL_TEMPLATE' => 'Format e-mail',

	'LBL_TEMPLATE_NAME' => 'Numele Format',
	'LBL_DESCRIPTION' => 'Descriere',
	'LBL_SUBJECT' => 'Subiect',
	'LBL_GENERAL_FIELDS' => 'General Domenii',
	'LBL_SELECT_FIELD_TYPE' => 'Selectați tipul câmpului',

	'LBL_EMAIL_TEMPLATE_DESCRIPTION'=>'Gestionarea template-uri pentru E-Mail modul',

);


text:
package com.skycloud.jkb.pojo.entity;

// Generated 2013-12-31 14:44:24 by Hibernate Tools 3.4.0.CR1

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

/**
 * Applications generated by hbm2java
 */
@Entity
@Table(name = "applications", catalog = "skycloud", uniqueConstraints = @UniqueConstraint(columnNames = { "hostid",
		"name" }))
public class Applications implements java.io.Serializable {

	private long applicationid;
	private Hosts hosts;
	private Applications applications;
	private String name;
	private Set<Httptest> httptests = new HashSet<Httptest>(0);
	private Set<Applications> applicationses = new HashSet<Applications>(0);
	private Set<ItemsApplications> itemsApplicationses = new HashSet<ItemsApplications>(0);

	public Applications() {
	}

	public Applications(long applicationid, Hosts hosts, String name) {
		this.applicationid = applicationid;
		this.hosts = hosts;
		this.name = name;
	}

	public Applications(long applicationid, Hosts hosts, Applications applications, String name,
			Set<Httptest> httptests, Set<Applications> applicationses, Set<ItemsApplications> itemsApplicationses) {
		this.applicationid = applicationid;
		this.hosts = hosts;
		this.applications = applications;
		this.name = name;
		this.httptests = httptests;
		this.applicationses = applicationses;
		this.itemsApplicationses = itemsApplicationses;
	}

	@Id
	@Column(name = "applicationid", unique = true, nullable = false)
	public long getApplicationid() {
		return this.applicationid;
	}

	public void setApplicationid(long applicationid) {
		this.applicationid = applicationid;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "hostid", nullable = false)
	public Hosts getHosts() {
		return this.hosts;
	}

	public void setHosts(Hosts hosts) {
		this.hosts = hosts;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "templateid")
	public Applications getApplications() {
		return this.applications;
	}

	public void setApplications(Applications applications) {
		this.applications = applications;
	}

	@Column(name = "name", nullable = false)
	public String getName() {
		return this.name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "applications")
	public Set<Httptest> getHttptests() {
		return this.httptests;
	}

	public void setHttptests(Set<Httptest> httptests) {
		this.httptests = httptests;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "applications")
	public Set<Applications> getApplicationses() {
		return this.applicationses;
	}

	public void setApplicationses(Set<Applications> applicationses) {
		this.applicationses = applicationses;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "applications")
	public Set<ItemsApplications> getItemsApplicationses() {
		return this.itemsApplicationses;
	}

	public void setItemsApplicationses(Set<ItemsApplications> itemsApplicationses) {
		this.itemsApplicationses = itemsApplicationses;
	}

}


text:
var Porcelain = function () {

  this._chart_selector = 'porcelain-chartable';
  this._chart_class    = 'porcelain-chart';

  this._chart_types    = {};
  this._charts         = [];
  this._plugin_types   = {};

  this.init();

};

Porcelain.prototype.init = function () {

  this.constructDOMCharts();

};

Porcelain.prototype.addChart = function (chart, node, type) {

  this._charts.push({
      chart   : chart
    , node    : node
    , type    : type
  });

  this.addClass(chart.element, this._chart_class);
  this.addClass(chart.element, type);

  return this._charts.length;

}

Porcelain.prototype.addChartToRegistry = function (type, constructor) {

  if(!Util.searchPrototypeChain(constructor.prototype, BaseChart.prototype)) throw "Chart: '"+type+"' must inherit from BaseChart";
  if(!constructor.prototype.hasOwnProperty('render')) throw "Chart: '"+type+"' must implement a 'render' method";
  if(this._chart_types[type]) throw "Chart '"+type+"' already defined. Skipping ...";

  var chart;

  this.overrideRenderer(constructor);

  this._chart_types[type] = constructor;
  Object.defineProperty(this, type, {
    get: function ( ) { return function (node) {
      chart = new constructor(node);

      this.addChart(chart, node, type);
      return  chart;
    }}
  });

};

Porcelain.prototype.addClass = function (node, class_name) {

  if (node.classList) node.classList.add(class_name);
  else node.className += ' ' + class_name;

};

Porcelain.prototype.addPluginToRegistry = function (type, constructor) {

  // if(!Util.searchPrototypeChain(constructor.prototype, BaseChart.prototype)) throw "Chart: '"+type+"' must inherit from BaseChart";
  // if(!constructor.prototype.hasOwnProperty('render')) throw "Chart: '"+type+"' must implement a 'render' method";
  if(this._plugin_types[type]) throw "Plugin '"+type+"' already defined. Skipping ...";

  var plugin;

  // this.overrideRenderer(constructor);

  this._plugin_types[type] = constructor;
  Object.defineProperty(this, type, {
    get: function ( ) { return function (options) {
      plugin = new constructor(options);

      // this.addChart(chart, node, type);
      return  plugin;
    }}
  });

};

Porcelain.prototype.assignChartProperties = function (node, chart) {

  var attribute
    , capabilities;

  if(node.getAttribute('data-capabilities')) {
    capabilities = JSON.parse(node.getAttribute('data-capabilities'));
    for(var c in capabilities) {
      if(chart.capabilities[c]) chart[c] = capabilities[c];
    }
  }

  for(var c in chart.capabilities) {
    attribute = node.getAttribute('data-'+c.replace('_', '-'));

    if(attribute) chart[c] = Util.parseAttribute(attribute, chart, c);

  }

};

Porcelain.prototype.constructDOMCharts = function () {

  var node_list = document.querySelectorAll('.'+this._chart_selector)
    , node
    , type
    , chart;

  for( var i = 0; i < node_list.length; i++) {
    node = node_list[i];
    type = node.getAttribute('data-chart-type');
    try {
      chart = this[Util.titleCase(type)](node);
    } catch (err) {
      console.warn('Chart type: "'+type+'" not found. Skipping render');
      return;
    }

    this.assignChartProperties(node, chart);
    chart.render();
  }

};

Porcelain.prototype.overrideRenderer = function (constructor) {

  var renderer = constructor.prototype.render;

  Object.defineProperties(constructor.prototype, {
    'render': {
      value: function () {
        if(constructor.prototype.hasOwnProperty('beforeRender')) {
          constructor.prototype.beforeRender.call(this);
          this.element.dispatchEvent(new CustomEvent('beforeRender', {'detail': constructor.prototype}));
        } else { this.element.dispatchEvent(new CustomEvent('beforeRender', {'detail': constructor.prototype})); }

        this.validate(arguments, function () {
          renderer.apply(this, arguments);
          this.element.dispatchEvent(new CustomEvent('render', {'detail': constructor.prototype}));

          if(constructor.prototype.hasOwnProperty('afterRender')) {
            constructor.prototype.afterRender.call(this);
            this.element.dispatchEvent(new CustomEvent('afterRender', {'detail': constructor.prototype}));
          } else { this.element.dispatchEvent(new CustomEvent('afterRender', {'detail': constructor.prototype})); }
        });
      }
    }
  })

};

Porcelain.prototype.register = function (type, constructor) {

  try         { this.addChartToRegistry(type, constructor); }
  catch (err) { console.warn(err); }

};

Porcelain.prototype.registerPlugin = function (type, constructor) {

  try         { this.addPluginToRegistry(type, constructor); }
  catch (err) { console.warn(err); }

};

Object.defineProperties(Porcelain.prototype, {

    'charts': {
      get: function () { return this._charts; }
    }
  , 'types': {
      get: function () { return this._chart_types; }
    }
  , 'plugins': {
      get: function () { return this._plugin_types; }
    }

});

window.Porcelain = new Porcelain();

document.addEventListener('DOMContentLoaded', function () {
  Porcelain.init();
});


text:
module Y2021.D05Spec (spec) where

import Witch
import Y2021

import Test.Hspec
import qualified Data.Text as T
import qualified Data.Text.IO as TIO
import Data.Text (Text)

spec :: Spec
spec = parallel $ do
        before (TIO.readFile "dist/resources/2021/day5_sample.txt") $ do
          describe "part5A" $ do
            it "solves the example case" $ \input -> do
              part5A input `shouldBe` 5
          describe "part5B" $ do
            it "solves the example case" $ \input -> do
              part5B input `shouldBe` 12


text:
<?php

namespace Colibri\Query\Builder\Common;

use Colibri\Connection\ConnectionInterface;
use Colibri\Query\BuilderInterface;
use Colibri\Query\Expr;
use Colibri\Query\Expression;

/**
 * Trait BaseBuilderTrait
 * @package Colibri\Query\Builder\Common
 */
trait BaseBuilderTrait
{

    /**
     * @inheritDoc
     */
    public function table($table)
    {
        $this->getBuilderObject()->table($table);

        return $this;
    }

    /**
     * @inheritDoc
     */
    public function cleanup()
    {
        $this->getBuilderObject()->cleanup();

        return $this;
    }

    /**
     * @inheritDoc
     */
    public function isReplaceAliases()
    {
        return $this->getBuilderObject()->isReplaceAliases();
    }

    /**
     * @inheritDoc
     */
    public function setReplaceAliases($replaceAliases)
    {
        $this->getBuilderObject()->setReplaceAliases($replaceAliases);

        return $this;
    }

    /**
     * @inheritDoc
     */
    public function isParameterized()
    {
        return $this->getBuilderObject()->isParameterized();
    }

    /**
     * @inheritDoc
     */
    public function setParameterized($parameterized)
    {
        $this->getBuilderObject()->setParameterized($parameterized);

        return $this;
    }

    /**
     * @inheritDoc
     */
    public function stringifyExpression(Expression $expression)
    {
        return $this->getBuilderObject()->stringifyExpression($expression);
    }

    /**
     * @inheritDoc
     */
    public function normalizeExpression(Expression $expression)
    {
        return $this->getBuilderObject()->normalizeExpression($expression);
    }

    /**
     * @inheritDoc
     */
    public function postProcessExpression(Expression $expression)
    {
        return $this->getBuilderObject()->postProcessExpression($expression);
    }

    /**
     * @inheritDoc
     */
    public function preProcessExpression(Expression $expression)
    {
        return $this->getBuilderObject()->preProcessExpression($expression);
    }

    /**
     * @inheritDoc
     */
    public function completeExpression(Expression $expression, $alias = null)
    {
        return $this->getBuilderObject()->completeExpression($expression, $alias);
    }

    /**
     * @inheritDoc
     */
    public function createTable($definition)
    {
        return $this->getBuilderObject()->createTable($definition);
    }

    /**
     * @inheritDoc
     */
    public function createColumn($definition)
    {
        return $this->getBuilderObject()->createColumn($definition);
    }

    /**
     * @inheritDoc
     */
    public function hasColumnAlias($alias)
    {
        return $this->getBuilderObject()->hasColumnAlias($alias);
    }

    /**
     * @inheritDoc
     */
    public function hasTableAlias($alias)
    {
        return $this->getBuilderObject()->hasTableAlias($alias);
    }

    /**
     * @inheritDoc
     */
    public function hasFunctionAlias($alias)
    {
        return $this->getBuilderObject()->hasFunctionAlias($alias);
    }

    /**
     * @inheritDoc
     */
    public function hasSubqueryAlias($alias)
    {
        return $this->getBuilderObject()->hasSubqueryAlias($alias);
    }

    /**
     * @inheritDoc
     */
    public function getColumnByAlias($alias)
    {
        return $this->getBuilderObject()->getColumnByAlias($alias);
    }

    /**
     * @inheritDoc
     */
    public function getTableByAlias($alias)
    {
        return $this->getBuilderObject()->getTableByAlias($alias);
    }

    /**
     * @inheritDoc
     */
    public function getFunctionByAlias($alias)
    {
        return $this->getBuilderObject()->getFunctionByAlias($alias);
    }

    /**
     * @inheritDoc
     */
    public function getSubqueryByAlias($alias)
    {
        return $this->getBuilderObject()->getSubqueryByAlias($alias);
    }

    /**
     * @inheritDoc
     */
    public function setColumnAlias(Expr\Column $column, $alias)
    {
        $this->getBuilderObject()->setColumnAlias($column, $alias);

        return $this;
    }

    /**
     * @inheritDoc
     */
    public function setTableAlias(Expr\Table $table, $alias)
    {
        $this->getBuilderObject()->setTableAlias($table, $alias);

        return $this;
    }

    /**
     * @inheritDoc
     */
    public function setFunctionAlias(Expr\Func $function, $alias)
    {
        $this->getBuilderObject()->setFunctionAlias($function, $alias);

        return $this;
    }

    /**
     * @inheritDoc
     */
    public function setAlias(Expression $expression, $alias)
    {
        $this->getBuilderObject()->setAlias($expression, $alias);

        return $this;
    }

    /**
     * @inheritDoc
     */
    public function setExpression(Expression $expression)
    {
        $this->getBuilderObject()->setExpression($expression);

        return $this;
    }

    /**
     * @inheritDoc
     */
    public function hasExpression(Expression $expression)
    {
        return $this->getBuilderObject()->hasExpression($expression);
    }

    /**
     * @inheritDoc
     */
    public function hasExpressionHash($hashCode)
    {
        return $this->getBuilderObject()->hasExpressionHash($hashCode);
    }

    /**
     * @inheritDoc
     */
    public function getExpression($hashCode)
    {
        return $this->getBuilderObject()->getExpression($hashCode);
    }

    /**
     * @inheritDoc
     */
    public function getExpressions()
    {
        return $this->getBuilderObject()->getExpressions();
    }

    /**
     * @inheritDoc
     */
    public function getAliases()
    {
        return $this->getBuilderObject()->getAliases();
    }

    /**
     * @inheritDoc
     */
    public function hasAlias($alias)
    {
        return $this->getBuilderObject()->hasAlias($alias);
    }

    /**
     * @inheritDoc
     */
    public function getAlias($hash)
    {
        return $this->getBuilderObject()->getAlias($hash);
    }

    /**
     * @inheritDoc
     */
    public function getHashes()
    {
        return $this->getBuilderObject()->getHashes();
    }

    /**
     * @inheritDoc
     */
    public function hasHash($hashCode)
    {
        return $this->getBuilderObject()->hasHash($hashCode);
    }

    /**
     * @inheritDoc
     */
    public function getHash($alias)
    {
        return $this->getBuilderObject()->getHash($alias);
    }

    /**
     * @inheritDoc
     */
    public function getPlaceholders()
    {
        return $this->getBuilderObject()->getPlaceholders();
    }

    /**
     * @inheritDoc
     */
    public function setPlaceholder($hashCode, Expr\Raw $placeholder)
    {
        $this->getBuilderObject()->setPlaceholder($hashCode, $placeholder);

        return $this;
    }

    /**
     * @inheritDoc
     */
    public function getPlaceholder($hashCode)
    {
        return $this->getBuilderObject()->getPlaceholder($hashCode);
    }

    /**
     * @inheritDoc
     */
    public function getPlaceholderForExpression(Expression $expression)
    {
        return $this->getBuilderObject()->getPlaceholderForExpression($expression);
    }

    /**
     * @inheritDoc
     */
    public function quoteIdentifier($string)
    {
        return $this->getBuilderObject()->quoteIdentifier($string);
    }

    /**
     * @inheritDoc
     */
    public function getConnection()
    {
        return $this->getBuilderObject()->getConnection();
    }

    /**
     * @inheritDoc
     */
    public function setConnection(ConnectionInterface $connection)
    {
        $this->getBuilderObject()->setConnection($connection);

        return $this;
    }

    /**
     * @inheritDoc
     */
    public function getComment()
    {
        return $this->getBuilderObject()->getComment();
    }

    /**
     * @inheritDoc
     */
    public function getCommentSql()
    {
        return $this->getBuilderObject()->getCommentSql();
    }

    /**
     * @inheritDoc
     */
    public function setComment($comment)
    {
        $this->getBuilderObject()->setComment($comment);

        return $this;
    }

    /**
     * @return BuilderInterface
     */
    abstract public function getBuilderObject();

}


text:
import { bindable, customElement, noView } from 'aurelia-templating';
import { inject } from 'aurelia-dependency-injection';
import { computedFrom } from 'aurelia-framework';
import { AttributeManager } from '../common/attributeManager';
import { getBooleanFromAttributeValue } from '../common/attributes';
import { Ui5Control} from '../control/control';
@customElement('ui5-list-item-base')
@inject(Element)
export class Ui5ListItemBase extends Ui5Control{
        _listitembase = null;
        _parent = null;
        _relation = null;
         @bindable ui5Id = null;
         @bindable ui5Class = null;
         @bindable ui5Tooltip = null;
         @bindable prevId = null;
        @bindable() type = 'Inactive';
@bindable() visible = true;
@bindable() unread = false;
@bindable() selected = false;
@bindable() counter = null;
@bindable() highlight = 'None';
@bindable() highlightText = '';
@bindable() navigated = false;
@bindable() press = this.defaultFunc;
@bindable() detailPress = this.defaultFunc;
/* inherited from sap.ui.core.Control*/
@bindable() busy = false;
@bindable() busyIndicatorDelay = 1000;
@bindable() busyIndicatorSize = 'Medium';
@bindable() visible = true;
@bindable() fieldGroupIds = '[]';
@bindable() validateFieldGroup = this.defaultFunc;
/* inherited from sap.ui.core.Element*/
/* inherited from sap.ui.base.ManagedObject*/
@bindable() validationSuccess = this.defaultFunc;
@bindable() validationError = this.defaultFunc;
@bindable() parseError = this.defaultFunc;
@bindable() formatError = this.defaultFunc;
@bindable() modelContextChange = this.defaultFunc;
/* inherited from sap.ui.base.EventProvider*/
/* inherited from sap.ui.base.Object*/

                constructor(element) {
                    super(element);
                this.element = element;
            this.attributeManager = new AttributeManager(this.element);
        }
        @computedFrom('_listitembase')
        get UIElement() {
            return this._listitembase;
          }
        fillProperties(params){
                                        params.type = this.type;
params.visible = getBooleanFromAttributeValue(this.visible);
params.unread = getBooleanFromAttributeValue(this.unread);
params.selected = getBooleanFromAttributeValue(this.selected);
params.counter = this.counter?parseInt(this.counter):0;
params.highlight = this.highlight;
params.highlightText = this.highlightText;
params.navigated = getBooleanFromAttributeValue(this.navigated);
params.press = this.press==null ? this.defaultFunc: this.press;
params.detailPress = this.detailPress==null ? this.defaultFunc: this.detailPress;

                                            super.fillProperties(params);
        }
        defaultFunc() {
                        }
                        attached() {
            var that = this;
            var params = {};
            this.fillProperties(params);
         if (this.ui5Id)
          this._listitembase = new sap.m.ListItemBase(this.ui5Id, params);
                                              else
          this._listitembase = new sap.m.ListItemBase(params);
                                                  if(this.ui5Class)
           this._listitembase.addStyleClass(this.ui5Class);
                                             if(this.ui5Tooltip)
           this._listitembase.setTooltip(this.ui5Tooltip);

        if ($(this.element).closest("[ui5-container]").length > 0) {
                                            this._parent = $(this.element).closest("[ui5-container]")[0].au.controller.viewModel;
                                        if (!this._parent.UIElement || (this._parent.UIElement.sId != this._listitembase.sId)) {
        var prevSibling = null;

        this._relation = this._parent.addChild(this._listitembase, this.element, this.prevId);
        this.attributeManager.addAttributes({"ui5-container": '' });
      }
      else {
                                                    this._parent = $(this.element.parentElement).closest("[ui5-container]")[0].au.controller.viewModel;
                                                var prevSibling = null;
                                                       this._relation = this._parent.addChild(this._listitembase, this.element, this.prevId);

        this.attributeManager.addAttributes({"ui5-container": '' });
      }
    }
    else {
                                                            if(this._listitembase.placeAt)
                                                                this._listitembase.placeAt(this.element.parentElement);
                                                        this.attributeManager.addAttributes({"ui5-container": '' });
                                                        this.attributeManager.addClasses("ui5-hide");
    }

                                                        //<!container>

                                                        //</!container>
                                                        this.attributeManager.addAttributes({"ui5-id": this._listitembase.sId});

        }
    detached() {
        try{
          if ($(this.element).closest("[ui5-container]").length > 0) {
        if (this._parent && this._relation) {
                                                                 if(this._listitembase)
                                                                this._parent.removeChildByRelation(this._listitembase, this._relation);
                                                            }
                                                                                }
         else{
                                                                this._listitembase.destroy();
                                                            }
         super.detached();
          }
         catch(err){}
        }

    addChild(child, elem, afterElement) {
        var path = jQuery.makeArray($(elem).parentsUntil(this.element));
        for (elem of path) {
        try{
                 if (elem.localName == 'tooltip') { this._listitembase.setTooltip(child); return elem.localName;}
if (elem.localName == 'customdata') { var _index = afterElement?Math.floor(afterElement+1):null; if (_index)this._listitembase.insertCustomData(child, _index); else this._listitembase.addCustomData(child, 0);  return elem.localName; }
if (elem.localName == 'layoutdata') { this._listitembase.setLayoutData(child); return elem.localName;}
if (elem.localName == 'dependents') { var _index = afterElement?Math.floor(afterElement+1):null; if (_index)this._listitembase.insertDependent(child, _index); else this._listitembase.addDependent(child, 0);  return elem.localName; }
if (elem.localName == 'dragdropconfig') { var _index = afterElement?Math.floor(afterElement+1):null; if (_index)this._listitembase.insertDragDropConfig(child, _index); else this._listitembase.addDragDropConfig(child, 0);  return elem.localName; }

           }
           catch(err){}
                                                                    }
      }
      removeChildByRelation(child, relation) {
      try{
               if (relation == 'tooltip') {  this._listitembase.destroyTooltip(child); }
if (relation == 'customdata') {  this._listitembase.removeCustomData(child);}
if (relation == 'layoutdata') {  this._listitembase.destroyLayoutData(child); }
if (relation == 'dependents') {  this._listitembase.removeDependent(child);}
if (relation == 'dragdropconfig') {  this._listitembase.removeDragDropConfig(child);}

      }
      catch(err){}
                                                                            }
    typeChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.setType(newValue);}}
visibleChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.setVisible(getBooleanFromAttributeValue(newValue));}}
unreadChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.setUnread(getBooleanFromAttributeValue(newValue));}}
selectedChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.setSelected(getBooleanFromAttributeValue(newValue));}}
counterChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.setCounter(newValue);}}
highlightChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.setHighlight(newValue);}}
highlightTextChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.setHighlightText(newValue);}}
navigatedChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.setNavigated(getBooleanFromAttributeValue(newValue));}}
pressChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.attachPress(newValue);}}
detailPressChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.attachDetailPress(newValue);}}
busyChanged(newValue){if(this._listitembase!==null){ this._listitembase.setBusy(getBooleanFromAttributeValue(newValue));}}
busyIndicatorDelayChanged(newValue){if(this._listitembase!==null){ this._listitembase.setBusyIndicatorDelay(newValue);}}
busyIndicatorSizeChanged(newValue){if(this._listitembase!==null){ this._listitembase.setBusyIndicatorSize(newValue);}}
visibleChanged(newValue){if(this._listitembase!==null){ this._listitembase.setVisible(getBooleanFromAttributeValue(newValue));}}
fieldGroupIdsChanged(newValue){if(this._listitembase!==null){ this._listitembase.setFieldGroupIds(newValue);}}
/* inherited from sap.ui.core.Control*/
validateFieldGroupChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.attachValidateFieldGroup(newValue);}}
/* inherited from sap.ui.core.Element*/
/* inherited from sap.ui.base.ManagedObject*/
validationSuccessChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.attachValidationSuccess(newValue);}}
validationErrorChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.attachValidationError(newValue);}}
parseErrorChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.attachParseError(newValue);}}
formatErrorChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.attachFormatError(newValue);}}
modelContextChangeChanged(newValue){if(newValue!=null && newValue!=undefined && this._listitembase!==null){ this._listitembase.attachModelContextChange(newValue);}}
/* inherited from sap.ui.base.EventProvider*/
/* inherited from sap.ui.base.Object*/

                                                                                }


text:
namespace TraktApiSharp.Enums
{
    /// Determines the field hint in a search query.
    public sealed class TraktSearchField : TraktEnumeration
    {
        /// An invalid field hint.
        public static TraktSearchField Unspecified { get; } = new TraktSearchField();

        /// The hint to search in movie, show or episode titles.
        public static TraktSearchField Title { get; } = new TraktSearchField(1, "title", "title", "Title");

        /// The hint to search in movie taglines.
        public static TraktSearchField Tagline { get; } = new TraktSearchField(2, "tagline", "tagline", "Tagline");

        /// The hint to search in movie, show or episode overviews.
        public static TraktSearchField Overview { get; } = new TraktSearchField(4, "overview", "overview", "Overview");

        /// The hint to search in movie or show people.
        public static TraktSearchField People { get; } = new TraktSearchField(8, "people", "people", "People");

        /// The hint to search in movie or show translations.
        public static TraktSearchField Translations { get; } = new TraktSearchField(16, "translations", "translations", "Translations");

        /// The hint to search in movie or show aliases.
        public static TraktSearchField Aliases { get; } = new TraktSearchField(32, "aliases", "aliases", "Aliases");

        /// The hint to search in person or list names.
        public static TraktSearchField Name { get; } = new TraktSearchField(64, "name", "name", "Name");

        /// The hint to search in person biographies.
        public static TraktSearchField Biography { get; } = new TraktSearchField(128, "biography", "biography", "Biography");

        /// The hint to search in list descriptions.
        public static TraktSearchField Description { get; } = new TraktSearchField(256, "description", "description", "Description");

        ///
        /// Initializes a new instance of the <see cref="TraktSearchField" /> class.<para />
        /// The initialized <see cref="TraktSearchField" /> is invalid.
        ///
        public TraktSearchField()
        {
        }

        private TraktSearchField(int value, string objectName, string uriName, string displayName) : base(value, objectName, uriName, displayName)
        {
        }

        ///
        /// Combines two <see cref="TraktSearchField" /> enumerations to one enumeration.
        /// <para>
        /// Usage: TraktSearchField.Title | TraktSearchField.Tagline
        /// </para>
        ///
        /// <param name="first">The first enumeration.</param>
        /// <param name="second">The second enumeration.</param>
        /// <returns>
        /// A binary combination of both given enumerations or null,
        /// if at least on of the given enumerations is null or unspecified.
        /// </returns>
        public static TraktSearchField operator |(TraktSearchField first, TraktSearchField second)
        {
            if (first == null || second == null)
                return null;

            if (first == Unspecified || second == Unspecified)
                return Unspecified;

            int newValue = first.Value | second.Value;
            string newObjectName = string.Join(",", first.ObjectName, second.ObjectName);
            string newUriName = string.Join(",", first.UriName, second.UriName);
            string newDisplayName = string.Join(", ", first.DisplayName, second.DisplayName);

            return new TraktSearchField(newValue, newObjectName, newUriName, newDisplayName);
        }
    }
}


text:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-netflix</artifactId>
		<version>1.4.0.BUILD-SNAPSHOT</version>
		<relativePath>..</relativePath> <!-- lookup parent from repository -->
	</parent>
	<artifactId>spring-cloud-netflix-core</artifactId>
	<packaging>jar</packaging>
	<name>Spring Cloud Netflix Core</name>
	<description>Spring Cloud Netflix Core</description>
	<properties>
		<main.basedir>${basedir}/..</main.basedir>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-autoconfigure</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-aop</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.retry</groupId>
			<artifactId>spring-retry</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-commons</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-context</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.netflix.archaius</groupId>
			<artifactId>archaius-core</artifactId>
			<optional>true</optional>
		</dependency>
		<!-- archaius dependencies that are now runtime -->
		<dependency>
			<groupId>commons-configuration</groupId>
			<artifactId>commons-configuration</artifactId>
			<optional>true</optional>
		</dependency>
		<!-- end archaius deps -->
		<dependency>
			<groupId>com.netflix.servo</groupId>
			<artifactId>servo-core</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.netflix.netflix-commons</groupId>
			<artifactId>netflix-commons-util</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>javax.inject</groupId>
			<artifactId>javax.inject</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.netflix.ribbon</groupId>
			<artifactId>ribbon-loadbalancer</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>io.github.openfeign</groupId>
			<artifactId>feign-core</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>io.github.openfeign</groupId>
			<artifactId>feign-slf4j</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>io.github.openfeign</groupId>
			<artifactId>feign-httpclient</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>io.github.openfeign</groupId>
			<artifactId>feign-hystrix</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>io.github.openfeign</groupId>
			<artifactId>feign-okhttp</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.netflix.hystrix</groupId>
			<artifactId>hystrix-core</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.netflix.hystrix</groupId>
			<artifactId>hystrix-metrics-event-stream</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.netflix.hystrix</groupId>
			<artifactId>hystrix-javanica</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.netflix.ribbon</groupId>
			<artifactId>ribbon</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.netflix.ribbon</groupId>
			<artifactId>ribbon-core</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.netflix.ribbon</groupId>
			<artifactId>ribbon-httpclient</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.netflix.zuul</groupId>
			<artifactId>zuul-core</artifactId>
			<optional>true</optional>
			<exclusions>
				<exclusion>
					<artifactId>groovy-all</artifactId>
					<groupId>org.codehaus.groovy</groupId>
				</exclusion>
				<exclusion>
					<artifactId>mockito-all</artifactId>
					<groupId>org.mockito</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>io.reactivex</groupId>
			<artifactId>rxjava</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.sun.jersey.contribs</groupId>
			<artifactId>jersey-apache-client4</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.squareup.okhttp3</groupId>
			<artifactId>okhttp</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<!-- Only needed at compile time -->
			<scope>compile</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-commons</artifactId>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.dataformat</groupId>
			<artifactId>jackson-dataformat-smile</artifactId>
			<optional>true</optional>
		</dependency>
	</dependencies>
	<profiles>
		<profile>
			<id>java8plus</id>
				<activation>
					<jdk>[1.8,2.0)</jdk>
				</activation>
				<build>
					<plugins>
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-compiler-plugin</artifactId>
							<configuration>
								<compilerArgs>
									<arg>-parameters</arg>
								</compilerArgs>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>


text:
<!DOCTYPE html>

	<meta charset="utf-8" />
	<title>FitText</title>

Squeeze with FitText

Squeeze with FitText

Squeeze with FitText

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


text:
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.jetbrains.env.python;

import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.projectRoots.Sdk;
import com.jetbrains.env.PyEnvTestCase;
import com.jetbrains.env.PyExecutionFixtureTestTask;
import com.jetbrains.python.tools.sdkTools.SdkCreationType;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.junit.Assert;
import org.junit.Test;

/**
 * Ensures resolve is always case-sensitive, even in Windows (see pep 235)
 *
 * @author Ilya.Kazakevich
 */
public final class PyCaseSensitiveResolveTest extends PyEnvTestCase {
  @Test
  public void testCaseSensitive() {
    runPythonTest(new PyExecutionFixtureTestTask(null) {
      @NotNull
      @Override
      protected String getTestDataPath() {
        return super.getTestDataPath() + "/resolveTest";
      }

      @Override
      public void runTestOn(@NotNull final String sdkHome, @Nullable Sdk existingSdk) throws Exception {
        createTempSdk(sdkHome, SdkCreationType.SDK_PACKAGES_ONLY);
        ApplicationManager.getApplication().invokeAndWait(() -> {
          myFixture.copyDirectoryToProject("", "");
          myFixture.configureByFile("test.py");
          myFixture.completeBasic();
          Assert.assertEquals("Completion failed. Failed to resolve unittest? Case-sensitive resolve failed?",
                              """
                                from unittest import TestCase

                                TestCase().assertIsNotNone()""",
                              myFixture.getFile().getText());
        });
      }
    });
  }
}


text:
var Sequelize = require('sequelize');

module.exports = function(sequelize, DataTypes) {
	var Incremental = sequelize.define('Incremental', {
			timestamp: {
				type: Sequelize.DATE,
				allowNull: false,
			},
			filename: {
				type: Sequelize.STRING(255),
				validate: {
					notEmpty: true,
				},
			},
			md5sum: {
				type: Sequelize.STRING(32),
				allowNull: false,
				validate: {
					notEmpty: true,
				},
			},
			isActive: {
				type: Sequelize.BOOLEAN,
				allowNull: false,
			},
			fileSize: {
				type: Sequelize.BIGINT.UNSIGNED,
				allowNull: true,
			},
	}, {
		validate: {
			romIdsValid : function() {
				if (!this.sourceRomId || this.sourceRomId < 0) {
					throw new Error('sourceRomId is a mandatory field! ' + JSON.stringify(this));
				}

				if (!this.targetRomId || this.targetRomId < 0) {
					throw new Error('targetRomId is a mandatory field! ' + JSON.stringify(this));
				}
			},
		}
	});

	return Incremental;
}


text:
<?php

namespace Losofacebook\Command;

use Knp\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Finder\Finder;
use Keboola\Csv\CsvFile;
use Losofacebook\Service\ImageService;
use Doctrine\DBAL\Connection;
use DateTime;

class AssociateImagesCommand extends Command
{

    protected function configure()
    {
        $this
            ->setName('dev:associate-images')
            ->setDescription('Associates images for all users');
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $db = $this->getDb();

        $persons = $db->fetchAll("SELECT id, gender FROM person WHERE username <> 'gaylord.lohiposki'");

        $femalesMin = $db->fetchColumn("SELECT MIN(id) FROM image WHERE upload_path LIKE '%/females/%'");
        $femalesMax = $db->fetchColumn("SELECT MAX(id) FROM image WHERE upload_path LIKE '%/females/%'");

        $malesMin = $db->fetchColumn("SELECT MIN(id) FROM image WHERE upload_path LIKE '%/males/%'");
        $malesMax = $db->fetchColumn("SELECT MAX(id) FROM image WHERE upload_path LIKE '%/males/%'");

        $sql = "UPDATE person SET primary_image_id = ?, background_id = ? WHERE id = ?";
        $stmt = $db->prepare($sql);

        foreach ($persons as $person) {

            $output->writeln("Associating #{$person['id']}");

            if ($person['gender'] == 1) {
                $primaryImageId = rand($malesMin, $malesMax);
            } else {
                $primaryImageId = rand($femalesMin, $femalesMax);
            }

            $backgroundId = rand(1, 30);
            $stmt->execute(array($primaryImageId, $backgroundId, $person['id']));

        }
    }

    /**
     * @return ImageService
     */
    public function getImageService()
    {
        return $this->getSilexApplication()['imageService'];
    }

    /**
     * @return Connection
     */
    public function getDb()
    {
        return $this->getSilexApplication()['db'];
    }
}


text:
import type { Config } from '@jest/types';
export default function tryRealpath(path: Config.Path): Config.Path;


text:
'use strict';

var _ = require('lodash'),
    amqp = require('amqp'),
    async = require('async'),
    debug = require('debug')('amqp:amqpHelper'),
    putty = require('putty');

_.mixin(putty.mixins);

/**
 * The AMQPHelper class which provides mechanisms to publish, subscribe to
 * queues and exchanges.
 *
 * @param {Object} config the configuration used to connect to an AMQP server
 */
function AMQPHelper(config) {
  this._config = config;
  this._exchanges = {};
  this._queues = {};

  debug('Created AMQPHelper');
}

function verifyPresent(type, name) {
  /* jshint validthis: true */
  var names = this['_' + type + 's'];

  if (!(_.has(this[names], name)))
    throw new Error(_.fmt('No %s found with the name "%s" found', type, name));
}

/**
 * Subscribe to the queue with the specified name and have the specified handler be notified
 * when a message is recieved on it.
 *
 * @param  {String} qName   the name of the queue. This name must be specified at initialization time
 * @param  {[Object]} options vendor-specific options
 * @param  {Function} handler the callback to be used
 */
AMQPHelper.prototype.subscribe = function (qName, handler) {
  // will throw error if q is not found
  _.bind(verifyPresent, this)('queue', qName);

  this._queues[qName].subscribe(handler);
};

/**
 * Publish the specified message with the specified key to the queue
 * with the specified name
 *
 * @param  {String} exName  name of the exchange to publish the message to
 * @param  {String} key     the routing key to use to route the message through the right queue
 * @param  {Object} message the message to be published
 */
AMQPHelper.prototype.publish = function (exName, key, message) {
  // will throw error if q is not found
  _.bind(verifyPresent, this)('exchange', exName);

  this.exchanges[exName].publish(key, message);
};

function ensureQueue(exchange, qDef, callback) {
  /* jshint validthis: true */
  var amqpHelper = this,

      amqpConnection = amqpHelper._connection;

  qDef = _.pick(qDef, 'name', 'binding');

  // already created? noop
  if (~(amqpHelper._queues.indexOf(qDef.name))) {
    debug('Queue "%s" is already present', qDef.name);
    return callback();
  }

  // no name? - get out!
  if (_.isEmpty(qDef.name)) return callback(new Error('Cannot create anonymous queue'));

  // ask amqp to create or get a queue
  amqpConnection.queue(qDef.name, function (q) {
    if (qDef.binding)
      q.bind(exchange, qDef.binding);

    debug('Successfully setup queue "%s"', qDef.name);

    amqpHelper._queues[qDef.name] = exchange;

    callback();
  });
}

function ensureExchange(exDef, callback) {
  /* jshint validthis: true */
  var amqpHelper = this,
      amqpConnection = amqpHelper._connection;

  exDef = _(exDef)
    .pick('name', 'type', 'queues')
    .defaults({type: 'topic'})
    .value();

  // already created? noop
  if (~(amqpHelper._exchanges.indexOf(exDef.name))) {
    debug('Exchange %s already present', exDef.name);
    return callback();
  }

  // no name? - get out!
  if (_.isEmpty(exDef.name)) return callback(new Error('Cannot create anonymous exchange'));

  // ask amqp to create or get a exchange reference
  amqpConnection.exchange(exDef.name, { type: exDef.type }, function (exchange) {
    var queues = exDef.queues;

    // if no queues defined, get out
    if (!(queues.length)) {
      debug('Successfully setup exchange: ', exDef.name);
      amqpHelper._exchanges[exDef.name] = exchange;
      return callback();
    }

    queues = _.map(queues, function (qDef, qName) {
      qDef.name = qName;
      return qDef;
    });

    // parallelly setup all queues
    async.each(queues, _.bind(ensureQueue, amqpHelper, exchange), function (error) {
      if (error) {
        var exError = new Error(_.fmt('Unable to setup exchange "%s"!', exDef.name));
        exError.cause = error;

        debug('Error setting up queue: %s', error.queueName);

        return callback(exError);
      }

      debug('Successfully setup exchange "%s"', exDef.name);

      // store the name of the exchange
      amqpHelper._exchanges[exDef.name] = exchange;

      callback();
    });
  });
}

function createConnection(callback) {
  /* jshint validthis: true */
  var amqpHelper = this,
      config = _(amqpHelper._config)
        .pick('server', 'port', 'user', 'password', 'ssl', 'authMechanism')
        .defaults({
          server: 'localhost',
          port: 5672,
          user: 'guest',
          password: 'guest'
        }).value(),
        configToPass;

  debug('Inside create connection');

  configToPass = {
    host: config.server,
    port: config.port,
    login: config.user,
    password: config.password
  };

  if (config.ssl) configToPass.ssl = config.ssl;
  if (config.authMechanism) configToPass.authMechanism = config.authMechanism;

  amqpHelper._connection = amqp.createConnection(configToPass);

  debug('Connecting to AMQP');

  // called after connect + handshake
  amqpHelper._connection.on('ready', function () {
    debug('Connection to AMQP was successful');

    // setup a shutdown hook to disconnect from the AMQP server
    _.each(['exit', 'SIGINT', 'SIGTERM'], function (signal) {
      process.on(signal, function () {
        debug('Disconnecting from AMQP');
        amqpHelper._connection.disconnect();
      });
    });

    return callback();
  });

  amqpHelper._connection.on('error', function (error) {
    debug('Connection to AMQP failed:', error);
    return callback(error);
  });

}

exports.initialize = function () {
  var args = _.arrgs(arguments),
      callback = _.isFunction(_.last(args)) ? args.pop() : undefined,
      config = args.length ? _.combine(args) : {},
      amqpHelper = new AMQPHelper(config);

      config = _.pick(amqpHelper._config, 'exchanges');

  debug('Initializing AMQP');

  createConnection(function (error) {
    var exchanges = config.exchanges;

    if (error) return callback(error);

    // no exchanges to configure? get out!
    if (!(config.exchanges) || _.isEmpty) return callback();

    exchanges = _.map(exchanges, function (exDef, exName) {
      exDef.name = exName;
      return exDef;
    });

    // parallelly setup all exchanges
    async.each(exchanges, _.bind(ensureExchange, amqpHelper), function (error) {
      if (error) {
        debug('Error setting up exchange: %s', error.exchangeName);
        return callback(error);
      }

      // all exchanges setup successfully
      callback(null, amqpHelper);
    });

  });

  return this;
};


text:
project-name's contributors
===========================


text:
package org.mmtk.utility.options;

/**
 * Should we eagerly finish sweeping at the start of a collection
 */
public final class EagerCompleteSweep extends org.vmutil.options.BooleanOption {
  /**
   * Create the option.
   */
  public EagerCompleteSweep() {
    super(Options.set, "Eager Complete Sweep",
          "Should we eagerly finish sweeping at the start of a collection",
          false);
  }
}