//
//  PWFeature.h
//  PWLicenseKit
//
//  Created by Andreas Känner on 24.10.08.
//  Copyright 2008 ProjectWizards. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "PWLicenseKit-Obfuscating.h"

@class PWLicense;
@class PWLicenseCenter;

@interface PWFeature : NSObject 
{
	NSString			*productName;
	NSString			*featureName;
	NSInteger			totalCount;
	NSInteger			availableCount;
	NSInteger			count;
	NSMutableSet		*licenses;
	BOOL				wantsMoreLicenses;
	PWLicenseCenter		*licenseCenter;
}

+ (PWFeature*) featureWithName:(NSString*)fName productName:(NSString*)pName totalCount:(int)tCount licenseCenter:(PWLicenseCenter*)aLicenseCenter;

- (id) initWithFeatureName:(NSString*)fName productName:(NSString*)pName totalCount:(int)tCount licenseCenter:(PWLicenseCenter*)aLicenseCenter;

- (void) setUsedCount:(int)count;
- (void) setTotalCount:(int)count;
- (void) setAvailableCount:(int)count;

- (void) addLicense:(PWLicense*)aLicense;

- (NSString*) productFeatureName;
- (NSString*) productName;
- (NSString*) featureName;
- (NSInteger)	totalCount;
- (NSInteger)	availableCount;
- (NSInteger)	usedCount;
- (NSInteger)	count;
- (BOOL) isVersionNumber;
- (double) versionNumber;
- (BOOL) isUsedQuantityEditable;
- (NSSet*) licenses;
- (NSDictionary*) usedLicenseNumbersWithQuantity;
- (BOOL) wantsMoreLicenses;
- (void) updateCount;

@end
