Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -129,35 +129,49 @@ public String label() {
}

/**
* Parses a label into a Region object.
* Parses a label or name into a Region object.
*
* @param label the region label
* @param labelOrName the region name or label
* @return the parsed region or null if there's no such region
*/
public static Region fromLabel(String label) {
public static Region fromLabelOrName(String labelOrName) {
Region location = Region.fromLabel(labelOrName);
if (location == null) {
return Region.fromName(labelOrName);
}
return location;
}
/**
* Parses a name into a Region object.
*
* @param name the region name
* @return the parsed region or null if there's no such region
*/
public static Region fromName(String name) {
for (Region region : Region.VALUES) {
if (region.label.equalsIgnoreCase(label)) {
if (region.name.equalsIgnoreCase(name)) {
return region;
}
}
return null;
}

/**
* Parses a name into a Region object.
* Parses a label into a Region object.
*
* @param name the region name
* @param label the region label
* @return the parsed region or null if there's no such region
*/
public static Region fromName(String name) {
private static Region fromLabel(String label) {
for (Region region : Region.VALUES) {
if (region.name.equalsIgnoreCase(name)) {
if (region.label.equalsIgnoreCase(label)) {
return region;
}
}
return null;
}


@Override
public int hashCode() {
return name.hashCode();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
package com.microsoft.azure.management.sql;

import com.microsoft.azure.management.apigeneration.Fluent;
import com.microsoft.azure.management.resources.fluentcore.arm.Region;
import com.microsoft.azure.management.resources.fluentcore.arm.models.IndependentChild;
import com.microsoft.azure.management.resources.fluentcore.model.Appliable;
import com.microsoft.azure.management.resources.fluentcore.model.Creatable;
Expand Down Expand Up @@ -39,15 +40,23 @@ public interface SqlFirewallRule extends
*/
String endIpAddress();

/**
* @return kind of SQL Server that contains this firewall rule.
*/
String kind();

/**
* @return region of SQL Server that contains this firewall rule.
*/
Region region();

/**
* Container interface for all the definitions that need to be implemented.
* @param <CreateStageT> The final stage for which return creatable for FirewallRule
*/
interface Definition<CreateStageT> extends
SqlFirewallRule.DefinitionStages.Blank<CreateStageT>,
SqlFirewallRule.DefinitionStages.WithStartIpAddress<CreateStageT>,
SqlFirewallRule.DefinitionStages.WithEndIpAddress<CreateStageT>,
SqlFirewallRule.DefinitionStages.Parentable,
interface Definition extends
SqlFirewallRule.DefinitionStages.Blank,
SqlFirewallRule.DefinitionStages.WithStartIpAddress,
SqlFirewallRule.DefinitionStages.WithEndIpAddress,
SqlFirewallRule.DefinitionStages.WithCreate {
}

Expand All @@ -57,75 +66,34 @@ interface Definition<CreateStageT> extends
interface DefinitionStages {
/**
* The first stage of the SQL Server definition.
* @param <CreateStageT> The final stage for which return creatable for FirewallRule
*/
interface Blank<CreateStageT> extends SqlFirewallRule.DefinitionStages.WithStartIpAddress<CreateStageT> {
interface Blank extends SqlFirewallRule.DefinitionStages.WithStartIpAddress {
}

/**
* The SQL Firewall Rule definition to set the starting IP Address for the server.
* @param <CreateStageT> The final stage for which return creatable for FirewallRule
*/
interface WithStartIpAddress<CreateStageT> {
interface WithStartIpAddress {
/**
* Sets the starting IP address of SQL server's firewall rule.
*
* @param startIpAddress start IP address in IPv4 format.
* @return The next stage of definition.
*/
SqlFirewallRule.DefinitionStages.WithEndIpAddress<CreateStageT> withStartIpAddress(String startIpAddress);
SqlFirewallRule.DefinitionStages.WithEndIpAddress withStartIpAddress(String startIpAddress);
}

/**
* The SQL Firewall Rule definition to set the starting IP Address for the server.
* @param <CreateStageT> The final stage for which return creatable for FirewallRule
*/
interface WithEndIpAddress<CreateStageT> {
interface WithEndIpAddress {
/**
* Sets the ending IP address of SQL server's firewall rule.
*
* @param endIpAddress end IP address in IPv4 format.
* @return The next stage of definition.
*/
CreateStageT withEndIpAddress(String endIpAddress);
}

/**
* A resource definition allowing SQLServer to be attached with SQLFirewallRule.
*/
interface WithSqlServer {
/**
* Creates a new SqlFirewallRule resource under SQLServer.
*
* @param groupName the name of the resource group for SQLServer.
* @param sqlServerName the name of the sQLServer.
* @return the creatable for the child resource
*/
Creatable<SqlFirewallRule> withExistingSqlServer(String groupName, String sqlServerName);

/**
* Creates a new SqlFirewallRule resource under SQLServer.
*
* @param sqlServerCreatable a creatable definition for the SQLServer
* @return the creatable for the SQLFirewallRule
*/
Creatable<SqlFirewallRule> withNewSqlServer(Creatable<SqlServer> sqlServerCreatable);

/**
* Creates a new SqlFirewallRule resource under SQLServer.
*
* @param existingSqlServer the SQLServer under which this SqlFirewallRule to be created.
* @return the creatable for the SQLFirewallRule
*/
Creatable<SqlFirewallRule> withExistingSqlServer(SqlServer existingSqlServer);
}
/**
* A SQL Server definition with sufficient inputs to create a new
* SQL Server in the cloud, but exposing additional optional inputs to
* specify.
*/
interface Parentable extends
SqlFirewallRule.DefinitionStages.WithSqlServer {
WithCreate withEndIpAddress(String endIpAddress);
}

/**
Expand All @@ -141,12 +109,39 @@ interface WithCreate extends Creatable<SqlFirewallRule> {
* The template for a SqlFirewallRule update operation, containing all the settings that can be modified.
*/
interface Update extends
UpdateStages.WithEndIpAddress,
UpdateStages.WithStartIpAddress,
Appliable<SqlFirewallRule> {
}

/**
* Grouping of all the SqlFirewallRule update stages.
*/
interface UpdateStages {
/**
* The SQL Firewall Rule definition to set the starting IP Address for the server.
*/
interface WithStartIpAddress {
/**
* Sets the starting IP address of SQL server's firewall rule.
*
* @param startIpAddress start IP address in IPv4 format.
* @return The next stage of definition.
*/
Update withStartIpAddress(String startIpAddress);
}

/**
* The SQL Firewall Rule definition to set the starting IP Address for the server.
*/
interface WithEndIpAddress {
/**
* Sets the ending IP address of SQL server's firewall rule.
*
* @param endIpAddress end IP address in IPv4 format.
* @return The next stage of definition.
*/
Update withEndIpAddress(String endIpAddress);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,7 @@ public interface SqlFirewallRules extends
* Entry point to SQL FirewallRule management API, which already have the SQLServer specified.
*/
interface SqlFirewallRulesCreatable extends SqlFirewallRules {
SqlFirewallRule.DefinitionStages.Blank<SqlFirewallRule.DefinitionStages.WithCreate> definedWithSqlServer(String resourceGroupName, String sqlServerName, String firewallRuleName);
}

/**
* Entry point to SQL FirewallRule management API, which does not have SqlServer specified yet.
*/
interface SqlFirewallRulesParentable extends SqlFirewallRules {
SqlFirewallRule.DefinitionStages.Blank<SqlFirewallRule.DefinitionStages.Parentable> define(String firewallRuleName);
SqlFirewallRule.DefinitionStages.Blank definedWithSqlServer(String resourceGroupName, String sqlServerName, String firewallRuleName);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ interface FirewallRules {
* @param firewallRuleName name of the firewall rule to be created
* @return Returns a stage to specify arguments of the firewall rule
*/
SqlFirewallRule.DefinitionStages.Blank<SqlFirewallRule.DefinitionStages.WithCreate> define(String firewallRuleName);
SqlFirewallRule.DefinitionStages.Blank define(String firewallRuleName);

/**
* Returns all the firewall rules for the server.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ public class FirewallRulesImpl implements SqlServer.FirewallRules {
this.resourceGroupName = resourceGroupName;
this.sqlServerName = sqlServerName;
this.sqlFirewallRules = new SqlFirewallRulesImpl(innerCollection, manager);

}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

package com.microsoft.azure.management.sql.implementation;

import com.microsoft.azure.management.resources.fluentcore.arm.Region;
import com.microsoft.azure.management.resources.fluentcore.arm.ResourceId;
import com.microsoft.azure.management.resources.fluentcore.arm.models.IndependentChild;
import com.microsoft.azure.management.resources.fluentcore.arm.models.implementation.IndependentChildImpl;
import com.microsoft.azure.management.resources.fluentcore.model.Creatable;
import com.microsoft.azure.management.sql.SqlFirewallRule;
import com.microsoft.azure.management.sql.SqlServer;
import rx.Observable;
Expand All @@ -18,16 +18,15 @@

/**
* Implementation for SqlFirewallRule and its parent interfaces.
* @param <CreateStageT> The final stage for which return creatable for FirewallRule
*/
public class SqlFirewallRuleImpl<CreateStageT>
public class SqlFirewallRuleImpl
extends IndependentChildImpl<
SqlFirewallRule,
SqlServer,
ServerFirewallRuleInner,
SqlFirewallRuleImpl<CreateStageT>>
SqlFirewallRuleImpl>
implements SqlFirewallRule,
SqlFirewallRule.Definition<CreateStageT>,
SqlFirewallRule.Definition,
SqlFirewallRule.Update,
IndependentChild.DefinitionStages.WithParentResource<SqlFirewallRule, SqlServer> {
private final ServersInner innerCollection;
Expand All @@ -54,7 +53,15 @@ public String endIpAddress() {
return this.inner().endIpAddress();
}

@Override
public String kind() {
return this.inner().kind();
}

@Override
public Region region() {
return Region.fromLabelOrName(this.inner().location());
}
@Override
public SqlFirewallRule refresh() {
this.innerCollection.getFirewallRule(this.resourceGroupName(), this.sqlServerName(), this.name());
Expand Down Expand Up @@ -83,32 +90,16 @@ public SqlFirewallRule call(ServerFirewallRuleInner databaseInner) {
});
}


@Override
public Creatable<SqlFirewallRule> withExistingSqlServer(String groupName, String sqlServerName) {
return withExistingParentResource(groupName, sqlServerName);
}

@Override
public Creatable<SqlFirewallRule> withNewSqlServer(Creatable<SqlServer> sqlServerCreatable) {
return withNewParentResource(sqlServerCreatable);
}

@Override
public Creatable<SqlFirewallRule> withExistingSqlServer(SqlServer existingSqlServer) {
return withExistingParentResource(existingSqlServer);
}

@Override
public SqlFirewallRuleImpl<CreateStageT> withStartIpAddress(String startIpAddress) {
public SqlFirewallRuleImpl withStartIpAddress(String startIpAddress) {
this.inner().withStartIpAddress(startIpAddress);
return this;
}

@Override
public CreateStageT withEndIpAddress(String endIpAddress) {
public SqlFirewallRuleImpl withEndIpAddress(String endIpAddress) {
this.inner().withEndIpAddress(endIpAddress);
return (CreateStageT) this;
return this;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.microsoft.azure.management.resources.fluentcore.arm.models.GroupableResource;
import com.microsoft.azure.management.sql.SqlFirewallRule;
import com.microsoft.azure.management.sql.SqlFirewallRules;
import org.apache.commons.lang3.NotImplementedException;
import rx.Observable;

/**
Expand All @@ -29,20 +30,15 @@ public class SqlFirewallRulesImpl extends IndependentChildrenImpl<
implements SqlFirewallRules,
SupportsGettingByParent<SqlFirewallRule>,
SupportsListingByParent<SqlFirewallRule>,
SqlFirewallRules.SqlFirewallRulesCreatable,
SqlFirewallRules.SqlFirewallRulesParentable {
SqlFirewallRules.SqlFirewallRulesCreatable {
protected SqlFirewallRulesImpl(ServersInner innerCollection, SqlServerManager manager) {
super(innerCollection, manager);
}

// TODO - ans - Check if we can get rid of this and create another interface where this is not required.
@Override
protected SqlFirewallRuleImpl wrapModel(String name) {
ServerFirewallRuleInner inner = new ServerFirewallRuleInner();

return new SqlFirewallRuleImpl<SqlFirewallRule.DefinitionStages.Parentable>(
name,
inner,
this.innerCollection);
throw new NotImplementedException("Should never hit this code, currently not exposed");
}

@Override
Expand All @@ -63,11 +59,6 @@ protected SqlFirewallRuleImpl wrapModel(ServerFirewallRuleInner inner) {
return new SqlFirewallRuleImpl(inner.name(), inner, this.innerCollection);
}

@Override
public SqlFirewallRule.DefinitionStages.Blank define(String name) {
return wrapModel(name);
}

@Override
public Observable<Void> deleteByParentAsync(String groupName, String parentName, String name) {
return this.innerCollection.deleteFirewallRuleAsync(groupName, parentName, name);
Expand Down Expand Up @@ -97,7 +88,7 @@ public PagedList<SqlFirewallRule> listBySqlServer(GroupableResource sqlServer) {
public SqlFirewallRuleImpl definedWithSqlServer(String resourceGroupName, String sqlServerName, String firewallRuleName) {
ServerFirewallRuleInner inner = new ServerFirewallRuleInner();

return new SqlFirewallRuleImpl<SqlFirewallRule.DefinitionStages.WithCreate>(
return new SqlFirewallRuleImpl(
firewallRuleName,
inner,
this.innerCollection).withExistingParentResource(resourceGroupName, sqlServerName);
Expand Down
Loading