Aah. Thanks Dan. Sent from my iPhone
On Sep 22, 2013, at 9:25 PM, Dan Haywood <[email protected]> wrote: > You've mis-counted. The return type for defaultNXxx() must be the same as > the type of parameter N. You are off by one in both cases. > > Dan. > > Sorry to be brief, sent from my phone > On 22 Sep 2013 17:10, "james agada" <[email protected]> wrote: > >> I made the defaults public but then get >>> >>> 1) Error in custom provider, >> org.apache.isis.core.metamodel.specloader.validator.MetaModelInvalidException: >>>> 1: dom.todo.Transactions#default10NewTransaction has prefix default, has >>>> probably been orphaned. If not an orphan, then rename and use @Named >>>> annotation >>> >>> [exec] 2: dom.todo.Transactions#default3NewTransaction has prefix >>>> default, has probably been orphaned. If not an orphan, then rename and >> use >>>> @Named annotation >>> >>> [exec] >>> >>> [exec] at >> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:138) >>> >>> [exec] at >> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:138) >>> >>> [exec] while locating >> org.apache.isis.core.runtime.system.IsisSystem >>> >>> [exec] for field at >> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.system(IsisWicketApplication.java:131) >>> >>> [exec] while locating app.QuickStartApplication >>> >>> [exec] >>> >>> [exec] 1 error >>> >>> [exec] at >> com.google.inject.internal.Errors.throwProvisionExceptionIfErrorsExist(Errors.java:451) >>> >>> [exec] at >> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:65) >>> >>> [exec] at >> com.google.inject.internal.InjectorImpl.injectMembers(InjectorImpl.java:944) >>> >>> [exec] at >> org.apache.isis.viewer.wicket.viewer.IsisWicketApplication.init(IsisWicketApplication.java:213) >>> >>> [exec] at >>>> org.apache.wicket.Application.initApplication(Application.java:818) >>> >>> [exec] at >>>> org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:424) >>> >>> [exec] ... 19 more >>> >>> [exec] Caused by: >> org.apache.isis.core.metamodel.specloader.validator.MetaModelInvalidException: >>>> 1: dom.todo.Transactions#default10NewTransaction has prefix default, has >>>> probably been orphaned. If not an orphan, then rename and use @Named >>>> annotation >>> >>> [exec] 2: dom.todo.Transactions#default3NewTransaction has prefix >>>> default, has probably been orphaned. If not an orphan, then rename and >> use >>>> @Named annotation >>> >>> [exec] >>> >>> [exec] at >> org.apache.isis.core.metamodel.specloader.validator.ValidationFailures.assertNone(ValidationFailures.java:40) >>> >>> [exec] at >> org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault.init(ObjectReflectorDefault.java:242) >>> >>> [exec] at >> org.apache.isis.core.runtime.system.session.IsisSessionFactoryAbstract.init(IsisSessionFactoryAbstract.java:202) >>> >>> [exec] at >> org.apache.isis.core.runtime.system.IsisSystemFixturesHookAbstract.init(IsisSystemFixturesHookAbstract.java:130) >>> >>> [exec] at >> org.apache.isis.core.runtime.runner.IsisInjectModule.provideIsisSystem(IsisInjectModule.java:139) >>> >>> [exec] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native >> Method) >>> >>> [exec] at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) >>> >>> [exec] at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) >>> >>> [exec] at java.lang.reflect.Method.invoke(Method.java:597) >>> >>> [exec] at >>>> com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:104) >>> >>> [exec] at >> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) >>> >>> [exec] at >> com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46) >>> >>> [exec] at >> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031) >>> >>> [exec] at >> com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) >>> >>> [exec] at com.google.inject.Scopes$1$1.get(Scopes.java:65) >>> >>> [exec] at >> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40) >>> >>> [exec] at >> com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53) >>> >>> [exec] at >> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110) >>> >>> [exec] at >> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:75) >>> >>> [exec] at >> com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73) >>> >>> [exec] at >> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024) >>> >>> [exec] at >> com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:73) >>> >>> [exec] at >> com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:60) >>> >>> [exec] ... 23 more >> >> On Sun, Sep 22, 2013 at 4:21 PM, james agada <[email protected]> wrote: >> >>> Ok. >>> >>> Sent from my iPhone >>> >>> On Sep 22, 2013, at 4:14 PM, Dan Haywood <[email protected]> >>> wrote: >>> >>>> The defaultNXxx() methods need to have public visibility. >>>> >>>> >>>> >>>> >>>> On 22 September 2013 15:39, james agada <[email protected]> wrote: >>>> >>>>> I am trying to use this code to have default values when creating a >> new >>>>> object. It compiles quiet alright but the default values never show. >>> What >>>>> am I doing wrong >>>>> >>>>> >>>>> >>>>>> // {{ newTransaction (action) >>>>> >>>>> @ActionSemantics(Of.SAFE) >>>>> >>>>> @MemberOrder(sequence = "1") >>>>> >>>>> @Named("New Transaction") >>>>> >>>>> public Transaction newTransaction( >>>>> >>>>> // @RegEx(validation = "\\w[@&:\\-\\,\\.\\+ \\w]*") // words, spaces >> and >>>>> selected punctuation >>>>> >>>>> @Named("Description") String description, >>>>> >>>>> @Named("Type") Transaction.TransactionType transactiontype, >>>>> >>>>> @Named("Issuing Party")Party fromParty, >>>>> >>>>> @Named("Receiving Party ") Party toParty, >>>>> >>>>> @Named("Denomination") VoucherDenomination voucherDenomination, >>>>> >>>>> @Named("Quantity ") BigDecimal quantity, >>>>> >>>>> @Named("In Units Of ") Sku sku, >>>>> >>>>> @Optional >>>>> >>>>> @Named("VoucherCode ") String voucherCode, >>>>> >>>>> @Optional >>>>> >>>>> @Named("Serial Number ") String serialNo, >>>>> >>>>> @Named("Transaction Date") LocalDate transactionDate, >>>>> >>>>> @Optional >>>>> >>>>> @Named("Ticket valid to") LocalDate validTo, >>>>> >>>>> @Named("Face Value") BigDecimal faceValue ){ >>>>> >>>>> final String ownedBy = currentUserName(); >>>>> >>>>> return newTransaction(description, transactiontype, fromParty, >> toParty, >>>>> voucherDenomination, >>>>> >>>>> quantity, sku, voucherCode,serialNo, transactionDate,validTo, >> faceValue, >>>>> ownedBy); >>>>> >>>>> } >>>>> >>>>> >>>>> // }} >>>>> >>>>> // defaults >>>>> >>>>> // >>>>> >>>>> private String default0NewTransaction(){ >>>>> >>>>> return "New Sale"; >>>>> >>>>> } >>>>> >>>>> private Transaction.TransactionType deafault1NewTransaction(){ >>>>> >>>>> return Transaction.TransactionType.SALE; >>>>> >>>>> } >>>>> >>>>> private Party default2NewTransaction(){ >>>>> >>>>> return getPartyFromCurrentUser(currentUserName()); >>>>> >>>>> } >>>>> >>>>> private VoucherDenomination default3NewTransaction(){ >>>>> >>>>> return getDefaultDenominationForCurrentUser(currentUserName()); >>>>> >>>>> } >>>>> >>>>> private VoucherDenomination default4NewTransaction(){ >>>>> >>>>> return getDefaultDenominationForCurrentUser(currentUserName()); >>>>> >>>>> } >>>>> >>>>> private BigDecimal default5NewTransaction(){ >>>>> >>>>> return new BigDecimal(0); >>>>> >>>>> } >>>>> >>>>> private Sku default6NewTransaction(){ >>>>> >>>>> return getDefaultSkuForDenomination(currentUserName()); >>>>> >>>>> } >>>>> >>>>> private String default7NewTransaction(){ >>>>> >>>>> return getDefaultVoucherCode(currentUserName()); >>>>> >>>>> } >>>>> >>>>> private String default8NewTransaction(){ >>>>> >>>>> return getDefaultSerialNo(currentUserName()); >>>>> >>>>> } >>>>> >>>>> private LocalDate default9NewTransaction(){ >>>>> >>>>> return new LocalDate(); >>>>> >>>>> } >>>>> >>>>> private BigDecimal default10NewTransaction(){ >>>>> >>>>> return new BigDecimal(1); >>>>> >>>>> } >>>>> >>>>> //helpers >>>>> >>>>> private Party getPartyFromCurrentUser(String currentUser){ >>>>> >>>>> // find the party that is attached to this current user. In reality we >>> look >>>>> through all the parties and find which one has the same user name >>>>> >>>>> return null; >>>>> >>>>> } >>>>> >>>>> private Party getDefaultToPartyForCurrentUser(String currentUser) { >>>>> >>>>> // find the person he normally transacts with >>>>> >>>>> return null; >>>>> >>>>> } >>>>> >>>>> private VoucherDenomination >> getDefaultDenominationForCurrentUser(String >>>>> currentUser){ >>>>> >>>>> //find the most common denominator he deals with >>>>> >>>>> return null; >>>>> >>>>> } >>>>> >>>>> private Sku getDefaultSkuForDenomination(String currentUser){ >>>>> >>>>> //find the default sku >>>>> >>>>> return null; >>>>> >>>>> } >>>>> >>>>> private String getDefaultVoucherCode(String currentUser) { >>>>> >>>>> //find default vouchercode >>>>> >>>>> return null; >>>>> >>>>> } >>>>> >>>>> private String getDefaultSerialNo(String currentUser){ >>>>> >>>>> //default serial number >>>>> >>>>> return null; >>>>> >>>>> } >>>>> >>>>> // >>
