use of com.helger.xsds.peppol.smp1.ObjectFactory in project midpoint by Evolveum.
the class TestPlentyOfAssignments method initSystem.
@Override
public void initSystem(Task initTask, OperationResult initResult) throws Exception {
super.initSystem(initTask, initResult);
initDummyResourcePirate(null, RESOURCE_DUMMY_FILE, RESOURCE_DUMMY_OID, initTask, initResult);
importObjectFromFile(ROLE_BASIC_FILE, initResult);
ObjectFactory objectFactory = new ObjectFactory();
generateRoles(NUMBER_OF_GENERATED_EMPTY_ROLES, "Empty Role %04d", GENERATED_EMPTY_ROLE_OID_FORMAT, null, initResult);
generateRoles(NUMBER_OF_GENERATED_DUMMY_ROLES, "Dummy Role %04d", GENERATED_DUMMY_ROLE_OID_FORMAT, (role, i) -> {
ItemPathType attrPath = new ItemPathType(ItemPath.create(new QName(RESOURCE_DUMMY_NS, DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_DRINK_NAME)));
JAXBElement<Object> evaluator = objectFactory.createValue(formatRum(i));
role.beginInducement().beginConstruction().resourceRef(RESOURCE_DUMMY_OID, ResourceType.COMPLEX_TYPE).kind(ShadowKindType.ACCOUNT).beginAttribute().ref(attrPath).beginOutbound().beginExpression().expressionEvaluator(evaluator);
}, initResult);
inspector = new CountingInspector();
InternalMonitor.setInspector(inspector);
}
use of com.helger.xsds.peppol.smp1.ObjectFactory in project midpoint by Evolveum.
the class TestPlentyOfAssignments method test200DummyGroups.
/**
* Create dummy groups that can be used for associationTargetSearch later on.
* Create them from midPoint so they have shadows.
* <p>
* MID-3938 #8
*/
@Test
public void test200DummyGroups() throws Exception {
Task task = getTestTask();
OperationResult result = task.getResult();
// WHEN
when();
PrismObjectDefinition<ShadowType> shadowDef = prismContext.getSchemaRegistry().findObjectDefinitionByCompileTimeClass(ShadowType.class);
PrismObjectDefinition<RoleType> roleDef = prismContext.getSchemaRegistry().findObjectDefinitionByCompileTimeClass(RoleType.class);
ResourceSchema rSchema = ResourceSchemaFactory.getCompleteSchema(getDummyResourceObject());
ResourceObjectClassDefinition rOcDef = rSchema.findObjectClassDefinition(getDummyResourceController().getGroupObjectClass());
ObjectFactory objectFactory = new ObjectFactory();
ItemPath nameAttributePath = ItemPath.create(ShadowType.F_ATTRIBUTES, SchemaConstants.ICFS_NAME);
for (int i = 0; i < NUMBER_OF_GENERATED_DUMMY_GROUPS; i++) {
PrismObject<ShadowType> shadow = shadowDef.instantiate();
ShadowType shadowType = shadow.asObjectable();
shadowType.resourceRef(RESOURCE_DUMMY_OID, ResourceType.COMPLEX_TYPE).objectClass(rOcDef.getTypeName());
ResourceAttributeContainer attributesContainer = ShadowUtil.getOrCreateAttributesContainer(shadow, rOcDef);
ResourceAttribute<String> nameAttribute = attributesContainer.findOrCreateAttribute(SchemaConstants.ICFS_NAME);
String groupName = formatGroupName(i);
nameAttribute.setRealValue(groupName);
display("Group shadow " + i, shadow);
addObject(shadow, task, result);
PrismObject<RoleType> role = roleDef.instantiate();
RoleType roleType = role.asObjectable();
ItemPathType assPath = new ItemPathType(ItemPath.create(RESOURCE_DUMMY_ASSOCIATION_GROUP_QNAME));
SearchObjectExpressionEvaluatorType associationTargetSearchType = new SearchObjectExpressionEvaluatorType();
EqualFilter<String> filter = prismContext.queryFactory().createEqual(nameAttributePath, null, null, prismContext, groupName);
SearchFilterType filterType = prismContext.getQueryConverter().createSearchFilterType(filter);
associationTargetSearchType.setFilter(filterType);
associationTargetSearchType.setSearchStrategy(ObjectSearchStrategyType.IN_REPOSITORY);
JAXBElement<SearchObjectExpressionEvaluatorType> evaluator = objectFactory.createAssociationTargetSearch(associationTargetSearchType);
roleType.oid(generateRoleOid(GENERATED_DUMMY_GROUP_ROLE_OID_FORMAT, i)).name(String.format("Group role %04d", i)).beginInducement().beginConstruction().resourceRef(RESOURCE_DUMMY_OID, ResourceType.COMPLEX_TYPE).kind(ShadowKindType.ACCOUNT).beginAssociation().ref(assPath).beginOutbound().beginExpression().expressionEvaluator(evaluator);
try {
IntegrationTestTools.displayXml("RRRRRRRRR group", role);
} catch (SchemaException e) {
throw new SystemException(e);
}
addObject(role, task, result);
}
// THEN
then();
assertSuccess(result);
Collection<DummyGroup> dummyGroups = getDummyResource().listGroups();
assertEquals("Wrong number of dummy groups", NUMBER_OF_GENERATED_DUMMY_GROUPS, dummyGroups.size());
assertShadows(NUMBER_OF_GENERATED_DUMMY_GROUPS);
assertObjects(RoleType.class, NUMBER_OF_GENERATED_EMPTY_ROLES + NUMBER_OF_GENERATED_DUMMY_ROLES + NUMBER_OF_ORDINARY_ROLES + NUMBER_OF_GENERATED_DUMMY_GROUPS);
}
use of com.helger.xsds.peppol.smp1.ObjectFactory in project sigla-main by consiglionazionaledellericerche.
the class DocAmmFatturazioneElettronicaComponent method preparaFattura.
public FatturaElettronicaType preparaFattura(UserContext userContext, Fattura_attivaBulk fattura) throws ComponentException {
try {
ObjectFactory factory = new ObjectFactory();
FatturaElettronicaType fatturaType = factory.createFatturaElettronicaType();
fatturaType.setSistemaEmittente(Utility.APPLICATION_TITLE.substring(0, 5));
fatturaType.setVersione(fattura.getCodiceUnivocoUfficioIpa() == null ? FormatoTrasmissioneType.FPR_12 : FormatoTrasmissioneType.FPA_12);
FatturaElettronicaHeaderType fatturaHeaderType = factory.createFatturaElettronicaHeaderType();
TerzoBulk terzoCnr = ((TerzoHome) getHome(userContext, TerzoBulk.class)).findTerzoEnte();
TerzoBulk cliente = fattura.getCliente();
TerzoBulk terzoUo = fattura.getTerzo_uo();
if (terzoCnr != null) {
DatiTrasmissioneType datiTrasmissione = factory.createDatiTrasmissioneType();
datiTrasmissione.setIdTrasmittente(impostaIdTrasmittente(userContext, factory, terzoCnr));
datiTrasmissione.setProgressivoInvio(fattura.getEsercizio().toString() + Utility.lpad(fattura.getProgrUnivocoAnno().toString(), 6, '0'));
if (fattura.getCodiceUnivocoUfficioIpa() != null) {
datiTrasmissione.setCodiceDestinatario(fattura.getCodiceUnivocoUfficioIpa());
} else {
if (fattura.getCodiceDestinatarioFatt() != null) {
datiTrasmissione.setCodiceDestinatario(fattura.getCodiceDestinatarioFatt());
} else {
if (fattura.isFatturaEstera()) {
datiTrasmissione.setCodiceDestinatario(CODICE_DESTINATARIO_ESTERO);
} else {
datiTrasmissione.setCodiceDestinatario(CODICE_DESTINATARIO_CON_PEC_O_NON_REGISTRATO);
}
datiTrasmissione.setPECDestinatario(fattura.getPecFatturaElettronica());
}
}
ContattiTrasmittenteType contattiTrasmittenteType = factory.createContattiTrasmittenteType();
String eMailReferente = Utility.createConfigurazioneCnrComponentSession().getVal01(userContext, it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext), null, Configurazione_cnrBulk.PK_FATTURAZIONE_ELETTRONICA, Configurazione_cnrBulk.SK_MAIL_REFERENTE_TECNICO);
contattiTrasmittenteType.setEmail(eMailReferente);
String telefonoReferente = Utility.createConfigurazioneCnrComponentSession().getVal01(userContext, it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext), null, Configurazione_cnrBulk.PK_FATTURAZIONE_ELETTRONICA, Configurazione_cnrBulk.SK_TELEFONO_REFERENTE_TECNICO);
contattiTrasmittenteType.setTelefono(telefonoReferente);
datiTrasmissione.setContattiTrasmittente(contattiTrasmittenteType);
datiTrasmissione.setFormatoTrasmissione(fattura.getCodiceUnivocoUfficioIpa() == null ? FormatoTrasmissioneType.FPR_12 : FormatoTrasmissioneType.FPA_12);
fatturaHeaderType.setDatiTrasmissione(datiTrasmissione);
CedentePrestatoreType cedentePrestatoreType = factory.createCedentePrestatoreType();
DatiAnagraficiCedenteType anagraficiCedenteType = factory.createDatiAnagraficiCedenteType();
if (terzoCnr.getAnagrafico() == null || terzoCnr.getAnagrafico().getPartita_iva() == null)
throw new ApplicationException("Impossibile Procedere! Manca la Partita Iva per il codice Anagrafica: " + terzoCnr.getCd_anag() + " del terzo: " + terzoCnr.getCd_terzo());
anagraficiCedenteType.setIdFiscaleIVA(impostaIdFiscale(userContext, factory, terzoCnr, null));
if (terzoCnr.getAnagrafico().getCodice_fiscale() == null)
throw new ApplicationException("Impossibile Procedere! Manca il Codice Fiscale per il codice Anagrafica: " + terzoCnr.getCd_anag() + " del terzo: " + terzoCnr.getCd_terzo());
anagraficiCedenteType.setCodiceFiscale(terzoCnr.getAnagrafico().getCodice_fiscale());
anagraficiCedenteType.setAnagrafica(impostaAnagrafica(factory, terzoCnr));
anagraficiCedenteType.setRegimeFiscale(RegimeFiscaleType.RF_01);
cedentePrestatoreType.setDatiAnagrafici(anagraficiCedenteType);
cedentePrestatoreType.setSede(impostaIndirizzo(userContext, factory, terzoUo));
// TODO: Per il momento non lo gestiamo. Il dato non รจ obbligatorio.
// ContattiType contattiCedente = factory.createContattiType();
// contattiCedente.setEmail(value);
// cedentePrestatoreType.setContatti(contattiCedente);
fatturaHeaderType.setCedentePrestatore(cedentePrestatoreType);
CessionarioCommittenteType clienteType = factory.createCessionarioCommittenteType();
DatiAnagraficiCessionarioType datiAnagraficiClienteType = factory.createDatiAnagraficiCessionarioType();
datiAnagraficiClienteType.setAnagrafica(impostaAnagrafica(factory, cliente));
if (fattura.getFl_intra_ue() && cliente.getAnagrafico().isPersonaGiuridica() && cliente.getCodiceUnivocoUfficioIpa() == null && cliente.getAnagrafico().getPartita_iva() == null) {
throw new ApplicationException("Impossibile Procedere! E' necessario indicare la partita IVA");
}
if ((!fattura.isFatturaEstera() || !cliente.getAnagrafico().isPersonaGiuridica()) && (fattura.getCodice_fiscale() == null && !cliente.getAnagrafico().isGruppoIVA())) {
throw new ApplicationException("Impossibile Procedere! Manca il Codice Fiscale per la Fattura: " + fattura.getEsercizio() + "-" + fattura.getPg_fattura_attiva());
}
if (!fattura.isFatturaEstera()) {
datiAnagraficiClienteType.setCodiceFiscale(fattura.getCodice_fiscale());
}
if (cliente.getAnagrafico() != null && cliente.getAnagrafico().getPartita_iva() != null && (!cliente.getAnagrafico().isEntePubblico() || cliente.getAnagrafico().isPartitaIvaVerificata() || (fattura.getCodice_fiscale() != null && cliente.getAnagrafico().getPartita_iva().compareTo(fattura.getCodice_fiscale()) != 0))) {
datiAnagraficiClienteType.setIdFiscaleIVA(impostaIdFiscale(userContext, factory, cliente, fattura));
} else if (!StringUtils.hasLength(datiAnagraficiClienteType.getCodiceFiscale())) {
datiAnagraficiClienteType.setIdFiscaleIVA(impostaIdFiscale(userContext, factory, cliente, fattura));
} else if (fattura.isFatturaEstera() && cliente.getAnagrafico().isPersonaFisica()) {
IdFiscaleType idFiscale = factory.createIdFiscaleType();
idFiscale.setIdCodice("99999999999");
idFiscale.setIdPaese(impostaCodicePaese(userContext, cliente));
datiAnagraficiClienteType.setIdFiscaleIVA(idFiscale);
}
if (!StringUtils.hasLength(datiAnagraficiClienteType.getCodiceFiscale()) && !StringUtils.hasLength(datiAnagraficiClienteType.getIdFiscaleIVA().getIdCodice())) {
datiAnagraficiClienteType.getIdFiscaleIVA().setIdCodice("99999999999");
}
clienteType.setDatiAnagrafici(datiAnagraficiClienteType);
clienteType.setSede(impostaIndirizzo(userContext, factory, cliente, fattura));
fatturaHeaderType.setCessionarioCommittente(clienteType);
fatturaType.setFatturaElettronicaHeader(fatturaHeaderType);
FatturaElettronicaBodyType fatturaBodyType = factory.createFatturaElettronicaBodyType();
DatiGeneraliType datiGenerali = factory.createDatiGeneraliType();
DatiGeneraliDocumentoType datiGeneraliDocumento = factory.createDatiGeneraliDocumentoType();
datiGeneraliDocumento.setTipoDocumento(tipoDocumento.get(fattura.getTi_fattura()));
datiGeneraliDocumento.setDivisa("EUR");
datiGeneraliDocumento.setData(convertDateToXmlGregorian(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate()));
datiGeneraliDocumento.setNumero(fattura.recuperoIdFatturaAsString());
List list = (List) ((FatturaAttivaSingolaComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRDOCAMM00_EJB_FatturaAttivaSingolaComponentSession", FatturaAttivaSingolaComponentSession.class)).findDettagli(userContext, fattura);
if (list != null) {
BulkList dettaglio = new BulkList(list);
if (dettaglio == null || dettaglio.isEmpty()) {
throw new ApplicationException("Impossibile Procedere! La Fattura: " + fattura.getEsercizio() + "-" + fattura.getPg_fattura_attiva() + " non ha dettagli");
}
Boolean esisteBollo = gestioneBollo(userContext, factory, datiGeneraliDocumento, fattura, dettaglio);
datiGeneraliDocumento.setImportoTotaleDocumento(fattura.getIm_totale_fattura().setScale(2));
String descrizione = "";
if (fattura.getDs_fattura_attiva() != null) {
descrizione = fattura.getDs_fattura_attiva();
}
List<String> listaCausali = new ArrayList<String>();
if (fattura.getRiferimento_ordine() != null && fattura.getDt_ordine() == null) {
if (!descrizione.equals("")) {
descrizione += " ";
}
descrizione += "Riferimento ordine:" + fattura.getRiferimento_ordine();
}
int lunghezzaStringaCausale = 200;
int numeroCaratteriFinali = 0;
for (int i = 0; i <= descrizione.length() / lunghezzaStringaCausale; i++) {
int numeroCaratteri = i * lunghezzaStringaCausale;
int numeroCaratteriOccorrenti = (numeroCaratteri + lunghezzaStringaCausale);
if (numeroCaratteriOccorrenti > descrizione.length()) {
numeroCaratteriFinali = numeroCaratteri + (descrizione.length() - numeroCaratteri);
} else {
numeroCaratteriFinali = numeroCaratteri + lunghezzaStringaCausale;
}
if (numeroCaratteri < numeroCaratteriFinali) {
String causale = descrizione.substring(numeroCaratteri, numeroCaratteriFinali);
listaCausali.add(RemoveAccent.convert(causale));
}
}
datiGeneraliDocumento.getCausale().addAll(listaCausali);
datiGenerali.setDatiGeneraliDocumento(datiGeneraliDocumento);
DatiBeniServiziType datiBeniServizi = factory.createDatiBeniServiziType();
List<DettaglioLineeType> listaDettagli = new ArrayList<DettaglioLineeType>();
List<RiepilogoPerAliquotaIVA> listaRiepilogo = new ArrayList<DocAmmFatturazioneElettronicaComponent.RiepilogoPerAliquotaIVA>();
HashMap<ContrattoBulk, List<Integer>> mappaContratti = new HashMap<ContrattoBulk, List<Integer>>();
HashMap<Fattura_attivaBulk, List<Integer>> dettagliNoteSenzaContratto = new HashMap<Fattura_attivaBulk, List<Integer>>();
HashMap<Fattura_attivaBulk, HashMap<ContrattoBulk, List<Integer>>> mappaDocumentiCollegati = new HashMap<Fattura_attivaBulk, HashMap<ContrattoBulk, List<Integer>>>();
List<Integer> listaTutteLinee = new ArrayList<>();
for (Iterator<Fattura_attiva_rigaBulk> i = dettaglio.iterator(); i.hasNext(); ) {
Fattura_attiva_rigaBulk riga = (Fattura_attiva_rigaBulk) i.next();
listaTutteLinee.add(riga.getProgressivo_riga().intValue());
DettaglioLineeType rigaFattura = factory.createDettaglioLineeType();
rigaFattura.setNumeroLinea(riga.getProgressivo_riga().intValue());
if (riga.getDs_riga_fattura() != null) {
rigaFattura.setDescrizione(RemoveAccent.convert(riga.getDs_riga_fattura().replaceAll("\\u20AC", "E")));
} else {
rigaFattura.setDescrizione("Descrizione");
}
rigaFattura.setQuantita(riga.getQuantita().setScale(2));
if (riga.getTariffario() != null && riga.getTariffario().getCd_tariffario() != null) {
if (riga.getTariffario().getUnita_misura() == null)
riga.setTariffario((TariffarioBulk) findByPrimaryKey(userContext, riga.getTariffario()));
rigaFattura.setUnitaMisura(riga.getTariffario().getUnita_misura());
}
rigaFattura.setDataInizioPeriodo(convertDateToXmlGregorian(riga.getDt_da_competenza_coge()));
rigaFattura.setDataFinePeriodo(convertDateToXmlGregorian(riga.getDt_a_competenza_coge()));
rigaFattura.setPrezzoUnitario(riga.getPrezzo_unitario().setScale(2));
rigaFattura.setPrezzoTotale(rigaFattura.getPrezzoUnitario().multiply(rigaFattura.getQuantita()).setScale(2));
if (riga.getVoce_iva() != null && riga.getVoce_iva().getCd_voce_iva() != null && riga.getVoce_iva().getPercentuale() == null)
riga.setVoce_iva((Voce_ivaBulk) findByPrimaryKey(userContext, riga.getVoce_iva()));
rigaFattura.setAliquotaIVA(Utility.nvl(riga.getVoce_iva().getPercentuale()).setScale(2));
rigaFattura.setNatura(impostaDatiNatura(riga.getVoce_iva().getNaturaOperNonImpSdi()));
listaDettagli.add(rigaFattura);
if (fattura.getTi_fattura().equals(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO)) {
impostaDatiPerNoteCredito(userContext, mappaDocumentiCollegati, riga, dettagliNoteSenzaContratto);
}
preparaDatiContratto(userContext, mappaContratti, riga);
impostaDatiPerRiepilogoDatiIva(listaRiepilogo, riga);
}
datiBeniServizi.getDettaglioLinee().addAll(listaDettagli);
impostaDatiContratto(factory, datiGenerali, mappaContratti);
impostaDatiDocumentiCollegati(factory, datiGenerali, mappaDocumentiCollegati, dettagliNoteSenzaContratto);
if (!fattura.isFatturaEstera() && fattura.getRiferimento_ordine() != null && fattura.getDt_ordine() != null) {
DatiDocumentiCorrelatiType datiOrdineAcquisto = factory.createDatiDocumentiCorrelatiType();
datiOrdineAcquisto.getRiferimentoNumeroLinea().addAll(listaTutteLinee);
datiOrdineAcquisto.setData(convertDateToXmlGregorian(fattura.getDt_ordine()));
datiOrdineAcquisto.setIdDocumento(substring(fattura.getRiferimento_ordine(), 20));
String soggettoOrdine = null;
if (!fattura.getFl_ordine_elettronico()) {
soggettoOrdine = "#NO#";
} else {
if (fattura.getCodiceUnivocoUfficioIpa() != null) {
soggettoOrdine = "#0201:" + fattura.getCodiceUnivocoUfficioIpa() + "#";
} else {
if (fattura.getPartita_iva() != null) {
soggettoOrdine = "#9906:";
} else {
soggettoOrdine = "#9907:";
}
if (fattura.getCodiceDestinatarioFatt() != null) {
soggettoOrdine += fattura.getCodiceDestinatarioFatt();
} else if (fattura.getPecFatturaElettronica() != null) {
soggettoOrdine += fattura.getPecFatturaElettronica();
} else {
soggettoOrdine += datiTrasmissione.getCodiceDestinatario();
}
soggettoOrdine += "#";
}
}
datiOrdineAcquisto.setCodiceCommessaConvenzione(soggettoOrdine);
datiGenerali.getDatiOrdineAcquisto().add(datiOrdineAcquisto);
}
fatturaBodyType.setDatiGenerali(datiGenerali);
List<DatiRiepilogoType> listaRiepilogoType = new ArrayList<DatiRiepilogoType>();
for (Iterator<RiepilogoPerAliquotaIVA> i = listaRiepilogo.iterator(); i.hasNext(); ) {
RiepilogoPerAliquotaIVA riepilogo = (RiepilogoPerAliquotaIVA) i.next();
DatiRiepilogoType datiRiepilogo = factory.createDatiRiepilogoType();
datiRiepilogo.setAliquotaIVA(riepilogo.getAliquota());
if (fattura.getFl_liquidazione_differita()) {
datiRiepilogo.setEsigibilitaIVA(fattura.getEsercizio() > 2014 ? EsigibilitaIVAType.S : EsigibilitaIVAType.D);
} else {
datiRiepilogo.setEsigibilitaIVA(EsigibilitaIVAType.I);
}
datiRiepilogo.setImponibileImporto(riepilogo.getImponibile().setScale(2));
datiRiepilogo.setImposta(riepilogo.getImposta().setScale(2));
impostaDatiNonImponibile(fattura, riepilogo, datiRiepilogo);
listaRiepilogoType.add(datiRiepilogo);
}
datiBeniServizi.getDatiRiepilogo().addAll(listaRiepilogoType);
fatturaBodyType.setDatiBeniServizi(datiBeniServizi);
DatiPagamentoType datiPagamento = factory.createDatiPagamentoType();
datiPagamento.setCondizioniPagamento(CondizioniPagamentoType.TP_02);
List<DettaglioPagamentoType> listaDettagliPagamento = new ArrayList<DettaglioPagamentoType>();
if (fattura.getTi_fattura().equals(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO)) {
for (Iterator<Fattura_attivaBulk> y = mappaDocumentiCollegati.keySet().iterator(); y.hasNext(); ) {
Fattura_attivaBulk fatturaCollegata = y.next();
listaDettagliPagamento.add(impostaDatiPagamento(userContext, terzoCnr, factory, fatturaCollegata));
}
} else {
DettaglioPagamentoType dettaglioPagamento = impostaDatiPagamento(userContext, terzoCnr, factory, fattura);
dettaglioPagamento.setCodicePagamento(fattura.recuperoIdFatturaAsString());
listaDettagliPagamento.add(dettaglioPagamento);
}
datiPagamento.getDettaglioPagamento().addAll(listaDettagliPagamento);
List<DatiPagamentoType> listaDatiPagamento = new ArrayList<DatiPagamentoType>();
listaDatiPagamento.add(datiPagamento);
fatturaBodyType.getDatiPagamento().addAll(listaDatiPagamento);
List<FatturaElettronicaBodyType> listaFattureBody = new ArrayList<FatturaElettronicaBodyType>();
listaFattureBody.add(fatturaBodyType);
fatturaType.getFatturaElettronicaBody().addAll(listaFattureBody);
}
}
return fatturaType;
} catch (Exception e) {
throw handleException(e);
}
}
use of com.helger.xsds.peppol.smp1.ObjectFactory in project geo-platform by geosdi.
the class QueryRestrictionsBuilderTest method createFilterType.
/**
* @return {@link FilterType}
*/
private FilterType createFilterType() {
FilterType filter = new FilterType();
BBox bbox = new BBox(14.131237640976908, 36.56356461583572, 15.821758881211283, 37.143760728459014);
BBOXType bBoxType = new BBOXType();
PropertyNameType propertyNameType = new PropertyNameType();
propertyNameType.setContent(Arrays.asList("the_geom"));
bBoxType.setPropertyName(propertyNameType);
EnvelopeType envelope = new EnvelopeType();
DirectPositionType lower = new DirectPositionType();
lower.setValue(asList(bbox.getMinX(), bbox.getMinY()));
envelope.setLowerCorner(lower);
DirectPositionType upper = new DirectPositionType();
upper.setValue(asList(bbox.getMaxX(), bbox.getMaxY()));
envelope.setUpperCorner(upper);
envelope.setSrsName("EPSG:4326");
bBoxType.setEnvelope(new ObjectFactory().createEnvelope(envelope));
filter.setSpatialOps(new org.geosdi.geoplatform.xml.filter.v110.ObjectFactory().createBBOX(bBoxType));
return filter;
}
use of com.helger.xsds.peppol.smp1.ObjectFactory in project ddf by codice.
the class CswEndpoint method queryCsw.
private CswRecordCollection queryCsw(GetRecordsType request) throws CswException {
if (LOGGER.isDebugEnabled()) {
try {
Writer writer = new StringWriter();
try {
Marshaller marshaller = CswQueryFactory.getJaxBContext().createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
JAXBElement<GetRecordsType> jaxbElement = new ObjectFactory().createGetRecords(request);
marshaller.marshal(jaxbElement, writer);
} catch (JAXBException e) {
LOGGER.debug("Unable to marshall {} to XML", GetRecordsType.class, e);
}
LOGGER.debug(writer.toString());
} catch (Exception e) {
LOGGER.debug("Unable to create debug message for getRecordsType", e);
}
}
QueryType query = (QueryType) request.getAbstractQuery().getValue();
CswRecordCollection response = new CswRecordCollection();
response.setRequest(request);
response.setOutputSchema(request.getOutputSchema());
response.setMimeType(request.getOutputFormat());
response.setElementName(query.getElementName());
response.setElementSetType((query.getElementSetName() != null) ? query.getElementSetName().getValue() : null);
response.setResultType((ResultType) ObjectUtils.defaultIfNull(request.getResultType(), ResultType.HITS));
if (ResultType.HITS.equals(request.getResultType()) || ResultType.RESULTS.equals(request.getResultType())) {
QueryRequest queryRequest = queryFactory.getQuery(request);
try {
queryRequest = queryFactory.updateQueryRequestTags(queryRequest, request.getOutputSchema());
LOGGER.debug("Attempting to execute paged query: {}", queryRequest);
AtomicLong hitCount = new AtomicLong(0);
QueryFunction qf = qr -> {
SourceResponse sr = framework.query(qr);
hitCount.compareAndSet(0, sr.getHits());
return sr;
};
ResultIterable results = ResultIterable.resultIterable(qf, queryRequest, request.getMaxRecords().intValue());
List<Result> resultList = results.stream().collect(Collectors.toList());
// The hitCount Atomic is used here instead of just defaulting
// to the size of the resultList because the size of the resultList
// can be limited to request.getMaxRecords().intValue() which would
// lead to an incorrect response for hits.
// hitCount is set within the QueryFunction and will correspond to
// all responses.
long totalHits = hitCount.get();
totalHits = totalHits != 0 ? totalHits : resultList.size();
QueryResponse queryResponse = new QueryResponseImpl(queryRequest, resultList, totalHits);
response.setSourceResponse(queryResponse);
} catch (UnsupportedQueryException | CatalogQueryException e) {
LOGGER.debug("Unable to query", e);
throw new CswException(e);
}
}
return response;
}
Aggregations