private void formatInstance()

in cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/command/CDICommand.java [236:453]


	private void formatInstance(
		Formatter f, String prefix, ComponentDTO componentDTO, ComponentTemplateDTO templateDTO,
		ComponentInstanceDTO instanceDTO, String pids,
		boolean hasNext, boolean hasNext2, boolean verbose) {

		if (verbose) {
			f.format(
				"%s%s%sBEANS: %s%n",
				prefix,
				(hasNext ? PSSS : SSSS),
				TLLS,
				templateDTO.beans.toString());

			f.format(
				"%s%s%sCONFIGURATIONS%n",
				prefix,
				(hasNext ? PSSS : SSSS),
				TLLS);

			for (Iterator<ConfigurationTemplateDTO> itr = templateDTO.configurations.iterator();itr.hasNext();) {
				ConfigurationTemplateDTO conf = itr.next();

				ConfigurationDTO configurationDTO = null;

				if (instanceDTO != null) {
					configurationDTO = instanceDTO.configurations.stream().filter(
						c -> c.template.maximumCardinality == conf.maximumCardinality &&
							c.template.pid == conf.pid &&
							c.template.policy == conf.policy
					).findFirst().orElse(null);
				}

				f.format(
					"%s%s%sPID: %s%n",
					prefix,
					(hasNext ? PSSSPSSS : SSSSPSSS),
					(itr.hasNext() ? TLLS : CLLS),
					(configurationDTO != null ? configurationDTO.properties.get(Constants.SERVICE_PID) + STAR : conf.pid));
				f.format(
					"%s%s%s%sPOLICY: %s%n",
					prefix,
					(hasNext ? PSSSPSSS : SSSSPSSS),
					(itr.hasNext() ? PSSS : SSSS),
					((conf.maximumCardinality == MaximumCardinality.MANY) ? TLLS : CLLS),
					conf.policy);

				if (conf.maximumCardinality == MaximumCardinality.MANY) {
					f.format(
						"%s%s%sFACTORY PID: %s%n",
						prefix,
						(hasNext ? PSSSPSSS : SSSSPSSS),
						(itr.hasNext() ? PSSSTLLS : SSSSTLLS),
						conf.pid);
				}
			}

			if (instanceDTO != null) {
				f.format(
					"%s%s%sCOMPONENT PROPERTIES*%n",
					prefix,
					(hasNext ? PSSS : SSSS),
					TLLS);

				for (Iterator<String> itr = instanceDTO.properties.keySet().iterator(); itr.hasNext();) {
					String key = itr.next();

					f.format(
						"%s%s%s%s=%s%n",
						prefix,
						(hasNext ? PSSSPSSS : SSSSPSSS),
						(itr.hasNext() ? TLLS : CLLS),
						key,
						instanceDTO.properties.get(key));
				}
			}

			if (!templateDTO.references.isEmpty()) {
				f.format(
					"%s%s%sREFERENCES%n",
					prefix,
					(hasNext ? PSSS : SSSS),
					TLLS);

				for (Iterator<ReferenceTemplateDTO> itr = templateDTO.references.iterator(); itr.hasNext();) {
					ReferenceTemplateDTO dto = itr.next();

					ReferenceDTO referenceDTO = null;

					if (instanceDTO != null) {
						referenceDTO = instanceDTO.references.stream().filter(
							r -> r.template.maximumCardinality == dto.maximumCardinality &&
								r.template.minimumCardinality == dto.minimumCardinality &&
								r.template.name == dto.name &&
								r.template.policy == dto.policy &&
								r.template.policyOption == dto.policyOption &&
								r.template.serviceType == dto.serviceType &&
								r.template.targetFilter == dto.targetFilter
						).findFirst().orElse(null);
					}

					f.format(
						"%s%s%sNAME: %s%n",
						prefix,
						(hasNext ? PSSSPSSS : SSSSPSSS),
						(itr.hasNext() ? TLLS : CLLS),
						dto.name);
					f.format(
						"%s%s%sSERVICE TYPE: %s%n",
						prefix,
						(hasNext ? PSSSPSSS : SSSSPSSS),
						(itr.hasNext() ? PSSSTLLS : SSSSTLLS),
						dto.serviceType);
					f.format(
						"%s%s%sTARGET FILTER: %s%n",
						prefix,
						(hasNext ? PSSSPSSS : SSSSPSSS),
						(itr.hasNext() ? PSSSTLLS : SSSSTLLS),
						(referenceDTO != null ? referenceDTO.targetFilter + STAR : dto.targetFilter));
					f.format(
						"%s%s%sMAX CARDINALITY: %s%n",
						prefix,
						(hasNext ? PSSSPSSS : SSSSPSSS),
						(itr.hasNext() ? PSSSTLLS : SSSSTLLS),
						dto.maximumCardinality);
					f.format(
						"%s%s%sMIN CARDINALITY: %s%n",
						prefix,
						(hasNext ? PSSSPSSS : SSSSPSSS),
						(itr.hasNext() ? PSSSTLLS : SSSSTLLS),
						(referenceDTO != null ? referenceDTO.minimumCardinality + STAR : dto.minimumCardinality));
					f.format(
						"%s%s%sPOLICY: %s%n",
						prefix,
						(hasNext ? PSSSPSSS : SSSSPSSS),
						(itr.hasNext() ? PSSSTLLS : SSSSTLLS),
						dto.policy);
					f.format(
						"%s%s%s%sPOLICY OPTION: %s%n",
						prefix,
						(hasNext ? PSSSPSSS : SSSSPSSS),
						(itr.hasNext() ? PSSS : SSSS),
						(referenceDTO != null ? TLLS : CLLS),
						dto.policyOption);

					if (referenceDTO != null) {
						f.format(
							"%s%s%sMATCHES: %s*%n",
							prefix,
							(hasNext ? PSSSPSSS : SSSSPSSS),
							(itr.hasNext() ? PSSSCLLS : SSSSCLLS),
							referenceDTO.matches);
					}
				}
			}

			if (!templateDTO.activations.isEmpty()) {
				f.format(
					"%s%s%sACTIVATIONS%n",
					prefix,
					(hasNext ? PSSS : SSSS),
					TLLS);

				for (Iterator<ActivationTemplateDTO> itr = templateDTO.activations.iterator(); itr.hasNext();) {
					ActivationTemplateDTO dto = itr.next();

					ActivationDTO activationDTO = null;

					if (instanceDTO != null) {
						activationDTO = instanceDTO.activations.stream().filter(
							a -> a.template.properties.equals(dto.properties) &&
								a.template.scope == dto.scope &&
								a.template.serviceClasses.equals(dto.serviceClasses)
						).findFirst().orElse(null);
					}

					f.format(
						"%s%s%sSERVICE TYPES: %s%n",
						prefix,
						(hasNext ? PSSSPSSS : SSSSPSSS),
						(itr.hasNext() ? TLLS : CLLS),
						dto.serviceClasses);
					f.format(
						"%s%s%s%sSERVICE SCOPE: %s%n",
						prefix,
						(hasNext ? PSSSPSSS : SSSSPSSS),
						(itr.hasNext() ? PSSS : SSSS),
						(activationDTO != null ? TLLS : CLLS),
						dto.scope.toString().toLowerCase());

					if (activationDTO != null) {
						f.format(
							"%s%s%sSERVICE REFERENCE: %s%n",
							prefix,
							(hasNext ? PSSSPSSS : SSSSPSSS),
							(itr.hasNext() ? PSSSCLLS : SSSSCLLS),
							activationDTO.service + STAR);
					}
				}
			}

			f.format(
				"%s%s%sSTATE: %s*%n",
				prefix,
				(hasNext ? PSSS : SSSS),
				(hasNext2 ? TLLS : CLLS),
				state(componentDTO));

			return;
		}

		f.format(
			"%s%s%sSTATE: %s %s%n",
			prefix,
			(hasNext ? PSSS : SSSS),
			(hasNext2 ? TLLS : CLLS),
			state(componentDTO),
			pids);
	}